客户端上禁用的文本框仍在服务器端启用

时间:2012-05-16 16:08:15

标签: asp.net validation requiredfieldvalidator customvalidator

在ASP.NET中,即使我在客户端禁用了文本框控件,RequiredFieldValidator仍会验证文本框控件。我想通过使用CustomValidator来摆脱这种行为。在验证功能中,我检查文本框是否已启用。如果是这种情况,我将验证器设置为有效。

function ValidateTextBox(sender, args) {

    var $textbox = $('#txtFoo')
    args.isValid = $textbox.prop('disabled') || $textbox.val();

}

这在客户端工作正常。问题是,我使用JavaScript更改了客户端文本框的状态。因此,服务器不知道已更改的状态(现在禁用了文本框控件)。因此,当引发自定义验证器的ServerValidate事件时(例如,通过调用Page.Validate),我无法检查文本框是否被禁用。因为服务器不知道这一点,所以Enabled属性总是设置为true,无论我在客户端做什么。
如何在禁用控件时禁用控件验证,或者在Postback期间告诉服务器文本框的状态?

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

  1. 而不是让'disabled'尝试将文本框设置为'ReadOnly'模式。

  2. 使用Enable JavaScript方法禁用文本框时,DisableRequiredFieldValidator ValidatorEnable {{1}} (reference