處理jquery 中 給disabled屬性不傳值的問題


問題:審核頁面加入不可編輯的判斷后,點擊【審核】按鈕,報錯,form表單的數據沒有傳遞過去。

下面是js中加入的代碼,用來判斷是否是審核頁面的,去掉此代碼,點擊【審核】按鈕能正常傳遞數據,加入的話,無法傳遞。
 
 
    if (data.WF_W_STATUS > 0 && data.WF_W_STATUS != 2) {
                $('input,textarea').attr("disabled", "disabled");
            }
 
 問題詳解:

                在form表單里,如果對input加入disabled="disabled"或disabled="true"等屬性,form表單提交的時候,就不會傳值到后台。

原因:在HTML頁面的某元素加入了disable的屬性,那么這個元素只是單單的去給用戶去顯示,當表單提交時,這個元素不會提交給后台去處理.所以當元素加入了disabled屬性,后台是無法得到這個屬性的值.

解決方法:再寫一個隱藏屬性,一個用於顯示,一個用於傳值。

處理方式:

1.首先去掉js中的input的,改成:input[type=text],這樣只是用來隱藏類型為text,textarea的,

 
(data.WF_W_STATUS > 0 && data.WF_W_STATUS != 2) {
                $(':input[type=text],textarea').attr("disabled", "disabled");
            }
 
 

同時在提交的表單加入被隱藏的類型的字段

    <input type="hidden" id="XSBH" name="XSBH" />
    <input type="hidden" id="WORKFLOWID" name="WORKFLOWID" />
    <input type="hidden" id="WF_W_STATUS" name="WF_W_STATUS" />
    <input type="hidden" id="WF_T_NODENAME" name="WF_T_NODENAME" />
    <input type="hidden" id="WF_T_AUDITNAME" name="WF_T_AUDITNAME" />
    <input type="hidden" id="WF_T_AUDITSTATE" name="WF_T_AUDITSTATE" />

  

放在表單中,讓表單提交的時候提交的是隱藏類型,不過要注意,加載disabled的前后傳值,不然會出現覆蓋的情況。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM