为什么禁用字段在mvc3中单击提交时没有提供值?

时间:2013-01-21 09:57:00

标签: asp.net-mvc-3 telerik

我使用Ajax.BeginForm / Html.BeginForm作为一个视图,在点击提交时将对象发送到控制器。有些telerik控件有条件地被禁用。单击“提交”时,对象无法检索控件中已存在的值,因为它已被禁用。因此,对象是使用空值。有什么帮助吗?

我正在使用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();  
        }
};

有人可以说如何重新编码以便我可以获取禁用的字段值吗?

2 个答案:

答案 0 :(得分:14)

这就是disabled输入工作的方式。他们从不将值发送到服务器。如果要阻止用户修改值,并在提交表单时将旧值发送到服务器,则可以使用readonly

答案 1 :(得分:2)

你可以使用这样的东西

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

提交之前。