Проверить предварительно заполненную форму jQuery (сделать недействительным при первом очистке поля, ASP.NET и ненавязчивым) - PullRequest
3 голосов
/ 08 июня 2011

У меня есть форма, которую можно заполнять, сохранять, загружать и редактировать.

Когда он загружен и отредактирован, он, вероятно, начинает действовать. Когда поле является действительным при загрузке, я хочу, чтобы оно немедленно аннулировалось, когда оно редактируется вопреки правилам. Это мой вопрос в двух словах, и я подозреваю, что это поддерживается некоторым параметром конфигурации, который я не могу найти .


В настоящее время он работает должным образом (как описано выше) только после того, как: 1) он отредактирован, 2) затем поле теряет фокус, пока действует, 3) затем редактируется снова. Таким образом, требуется дополнительная допустимая потеря фокуса для визуализации ошибок для предварительно заполненной формы.

Если он пуст при загрузке (например, при первом посещении), он не должен показывать ошибки.

Я использую следующее уже в моей структуре:

  • jQuery.validate («одобренный» и фокус моего вопроса)
  • Адаптер ненавязчивой проверки jQuery для ASP.NET MVC 3

В настоящее время я не запускаю никакого пользовательского кода , чтобы активировать его, поскольку «ненавязчивый» адаптер инициализирует проверку (но я был бы рад исправить это). Я попытался добавить «form.valid ()» при загрузке страницы, но это не исправляет вышесказанное и фактически нарушает другие функции.

Спасибо, Shannon

Ответы [ 3 ]

1 голос
/ 10 июля 2011

Я покопался в плагине проверки и открыл билет на то, что, по моему мнению, является дефектом.

https://github.com/jzaefferer/jquery-validation/issues/146

Шеннон

0 голосов
/ 06 июня 2017

У меня работает этот конструктор:

$('form').validate({
    onfocusout: function(element) {
       this.element(element);
    }, ...
});
0 голосов
/ 22 июня 2011

Вы можете попробовать проверить форму вручную каждый раз, когда ввод был изменен.

$(":input").live("change", function(){
    form.validate();
})

Из документации видно, что вы не можете позвонить form.valid(), не позвонив сначала form.validate();.

...