本文實例講述了Web表單提交之disabled問題js解決方法。分享給大家供大家參考。具體分析如下:
例如,有如下表單
復制代碼 代碼如下:<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。
希望本文所述對大家的javascript程序設計有所幫助。