在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
期间告诉服务器文本框的状态?
感谢您的时间。
答案 0 :(得分:0)
而不是让'disabled'
尝试将文本框设置为'ReadOnly'
模式。
使用Enable
JavaScript方法禁用文本框时,Disable
或RequiredFieldValidator
ValidatorEnable
{{1}}
(reference)