我有一个可能有 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);
}
}
但是,我遇到了一个尚未解决的问题。当我的用户选中该框并且这些字段现在已启用并需要时,我的验证器会立即触发其“此字段是必需的”消息。这是在用户甚至有机会输入任何内容之前,所以这不是一个很好的用户体验。我可以告诉验证器什么,以便它知道,即使我启用它,“这个字段还没有获得焦点,所以在有人故意将其留空之前不要显示错误消息”?