Оказалось, что некоторые из моих проблем можно решить, установив для кнопки сброса значение reset
, которое учитывает структура проверки. Это не работает, когда происходит сбой отправки (из-за неправильных полей), и в этом случае я использовал следующую функцию (selector
- строка селектора jQuery):
resetFieldValidation: function (selector) {
var fields = $(selector);
fields.removeClass('input-validation-error').addClass('input-validation-valid');
fields.siblings('.field-validation-error').text('').removeClass('field-validation-error').addClass('field-validation-valid');
fields.each(function () {
$(this)[0]['__MVC_HasTextChanged'] = false;
$(this)[0]['__MVC_HasValidationFired'] = false;
});
}
Последняя часть функции устанавливает значения, указывающие платформе валидации, что поля не изменились и ранее не вызывали ошибку валидации.