У меня есть форма, возможно, с 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);
}
}
Однако у меня возникла проблема.пока не вижу адреса.Когда мой пользователь установил флажок и теперь поля включены и обязательны для заполнения, мой валидатор немедленно запускает сообщение «Это поле обязательно для заполнения».Это еще до того, как пользователь успел что-то напечатать, так что это не очень хороший пользовательский опыт.Что я могу сказать Валидатору, чтобы он знал, даже если я его включаю: «Это поле еще не имеет фокуса, поэтому не показывайте сообщение об ошибке, пока кто-то сознательно не оставит его пустым»?