2013-01-21 48 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"); 

提交之前。

相关问题