1. 程式人生 > >Web表單提交之disabled問題

Web表單提交之disabled問題

rip 使用 輸入框 pan parameter 事件 type .get ron

例如,有如下表單
<form id="inputForm" action="shorttermrental.action" method="post">
<input name="pname" type="text" id="pname" value="xxx" size="20" disabled="disabled"/>
<input name="but" type="submit" id="but" value="xxx" size="20"/>
</form>

當我們提交表單時,在後臺是獲取不了pname數據的,因為改輸入框的屬性disabled。即能保存值也能保留用戶不能輸入這種功能有以下解決方法:

1. 講disabled="disabled"屬性改為readonly="readonly"代替,其功能是基本一樣,readonly還能支持onfocus事件。(推薦使用)
<input name="xxx" id="xxx" value="xxx" size="20" readonly="readonly"/>
2. 在form表單提交時利用js將disabled屬性修改
<input name="but" type="button" id="but" value="xxx" size="20"/>
<script type="text/javascript">

function submit_form(){
//javascript寫法
document.getElementById("pname").disabled="";
document.getElementById("inputForm").submit();
//jQuery寫法
$("#pname").attr("disabled",false);
$("#inputForm").submit();
}

</script>
3. 將pname的值用js獲取,使用參數形式傳遞,修改form的action值,當然這樣需要修改後臺代碼,獲取該參數(getParameter);
<script type="text/javascript">
function submit_form(){
//jQuery寫法
var pname = $("#pname").val();
$("#inputForm").attr("action","shorttermrental.action?panme="+pname+"&p="+new Date());
$("#inputForm").submit();
//javascript寫法
var pname = document.getElementById("pname").value;
document.getElementById("pname").action = "shorttermrental.action?panme="+pname+"&p="+new Date();
document.getElementById("pname").submit();
}
</script>
*一點小建議:當我們書寫腳本語言時,我們一般熱衷於jQuery書寫,因為它很簡煉,jQuery是將javascript封裝的,取HTML等值時,采用正則表達式匹配獲取,
因此必然影響效率,所以建議大家當有大量腳本時,一般采用javascript。

Web表單提交之disabled問題