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

use*_*987 5 telerik asp.net-mvc-3

我已经使用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();  
        }
};
Run Code Online (Sandbox Code Playgroud)

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

Dar*_*rov 14

这就是disabled投入的运作方式.他们从不将值发送到服务器.你可以使用readonly,如果你想阻止修改值的用户,但在提交表单的时候送旧值到服务器,而不是.

  • 那有什么问题?而不是禁用,然后按照我的建议使它们只读:`$('#Pop').attr('readonly','readonly');`.否则,您无法在提交表单时获取其值.它只是HTML的工作原理. (2认同)