2013-01-21 91 views
4

我已經使用Ajax.BeginForm/Html.BeginForm作爲一個視圖,它通過單擊提交將對象發送給控制器。有一些telerik控件是有條件禁用的。點擊提交後,該對象無法檢索控件中已存在的值,因爲該控件已被禁用。因此,對象由空值構成。任何幫助?爲什麼禁用的字段不提供點擊提交mvc3的值?

即時通訊使用jquery在加載頁面時禁用這些telerik控件。

Change.setDropDownValues = function() { 

    if (condition) { 

       $("#A").data('tDropDownList').enabled = false;       $("#A").data('tDropDownList').disable(); 
        } 
     } 
     else if (condition) { 

      $('#Pop').attr('disabled', 'disabled'); //text box 
      $('#ShortDesc').attr('disabled', 'disabled'); //textarea 
      $('#LongDesc').attr('disabled', 'disabled'); //text area 
      $('#Cont').attr('disabled', 'disabled'); //text box 

      $('#iDate').attr('disabled', 'disabled'); //datepicker division 
      $('#C').data('tDropDownList').enabled = false; //drop down list 
      $('#C').data('tDropDownList').disable(); 
     } 
}; 

任何人都可以說如何重新調整,以便我可以獲取禁用的字段值?

回答

13

這就是disabled輸入的工作方式。他們從不將價值發送到服務器。如果您想阻止用戶修改值並在提交表單時將舊值發送到服務器,則可以使用readonly

+0

我使用jquery在加載頁面時禁用這些telerik控件。 – user1545987

+2

這有什麼問題?而不是禁用,然後按照我的建議讓它們只讀:'$('#Pop')。attr('readonly','readonly');'。否則,您不能期望在提交表單時獲得它們的值。這只是HTML的工作原理。 –

1

你可以使用這樣的事情

$(":disabled", $('#yourform')).removeAttr("disabled"); 

提交之前。

相關問題