1. 程式人生 > >處理jquery 中 給disabled屬性不傳值的問題

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

size ava 過去 數據 單單 flow 原因 按鈕 form表單提交

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

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