問題:審核頁面加入不可編輯的判斷后,點擊【審核】按鈕,報錯,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的前后傳值,不然會出現覆蓋的情況。