Локальные переменные и примитивы должны быть инициализированы перед использованием, потому что вы знаете, чего ожидать от значений. Исторически, когда была создана новая переменная, она содержала бы случайные значения из памяти [и невозможно предсказать значение]. Java также требует этого, потому что он предотвращает наличие потерянных переменных.
Вот код для сброса всех валидаторов
function CleanForm() {
document.forms[0].reset();
for (i = 0; i < Page_Validators.length; i++) {
Page_Validators[i].style.visibility = 'hidden';
}
return false;
}
или одного:
document.getElementById("<%= MyValidationContorl.ClientID %>").style.visibility
= 'hidden';
Проверка страницы запускается каждый раз, когда вы публикуете сообщение, проблема заключается в том, что вы очищаете содержимое валидатора cv.innerHTML = '';
, таким образом ваше сообщение валидатора теряется навсегда и вы подумаете, что проверка снова не срабатывает.
и для ответа @Glennular код не обрабатывает свойство валидатора Display
, если для него установлено значение Dynamic
, валидатор будет переключаться с помощью validator.style.display
, но если для него установлено значение None
или Inline
, то вместо него будет использоваться свойство validator.style.visibility
.
Вместо этого лучше использовать asp.net ValidatorUpdateDisplay
,
<script type="text/javascript">
function Page_ClientValidateReset() {
if (typeof (Page_Validators) != "undefined") {
for (var i = 0; i < Page_Validators.length; i++) {
var validator = Page_Validators[i];
validator.isvalid = true;
ValidatorUpdateDisplay(validator);
}
}
}
</script>
Обновление : сбросить сводки проверки
<script type="text/javascript">
function Page_ValidationSummariesReset(){
if (typeof(Page_ValidationSummaries) == "undefined")
return;
for (var i = 0; i < Page_ValidationSummaries.length; i++)
Page_ValidationSummaries[i].style.display = "none";
}
</script>