Sha*_*eek 5 javascript asp.net jquery requiredfieldvalidator
我有一个可能有10个字段的表单.其中一个字段是一个复选框,默认未选中,如果选中该复选框,则表单上的许多字段仅启用+必需.我已经成功地找到了如何调用ValidatorEnable(requiredFieldValidator,true)来处理这个问题(我已经检查了很多关于这个主题的StackOverflow问题).
function toggleStatus() {
if ($('#ctl00_main_chkContactMe').is(':checked')) {
$('#elementsToOperateOn :input').removeAttr('disabled');
$('#elementsToOperateOn label').removeClass('off');
ValidatorEnable($("[id$=RequiredFieldValidator1]")[0], true);
ValidatorEnable($("[id$=RequiredFieldValidator2]")[0], true);
} else {
$('#elementsToOperateOn :input').attr('disabled', true);
$('#elementsToOperateOn label').addClass('off');
ValidatorEnable($("[id$=RequiredFieldValidator1]")[0], false);
ValidatorEnable($("[id$=RequiredFieldValidator2]")[0], false);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我有一个问题,我还没有看到解决.当我的用户选中该框并且现在已启用并且需要字段时,我的验证器会立即触发其"此字段是必需的"消息.这是在用户甚至有机会输入任何内容之前,所以这不是一个非常好的用户体验.我可以告诉验证器,以便它知道,即使我正在启用它,"此字段还没有完全集中,所以在有人故意将其留空之前不要显示错误消息"?
Moh*_*519 12
我有同样的问题并使用此代码解决了它:
var myValidator = document.getElementById('<%=myValidator.ClientID %>');
ValidatorEnable(myValidator, true);
myValidator.isvalid = true;
ValidatorUpdateDisplay(myValidator);
Run Code Online (Sandbox Code Playgroud)
第三行可能看起来有点奇怪,但验证器稍后将在任何更改或发布页面时进行验证.
你也可以尝试这个功能:
function myValidatorEnabler(validator, enable) {
validator.enabled = enable;
ValidatorUpdateDisplay(validator);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3064 次 |
| 最近记录: |