Вы не можете иметь вложенные формы, которые являются недействительными HTML, и вы должны прикрепить .validate()
к form
контейнеру. Обходных путей нет.
Вы также используете .validate()
все неправильно. Поскольку это основной метод инициализации плагина, его перенос в обработчик keyup
некорректен. Плюс плагин уже использует событие keyup
для запуска проверки.
И нет, вы не можете поместить элементы ввода формы в div
, а затем нацелиться на то, что div
присоединено к .validate()
. Это будет проигнорировано. Вы можете выбрать только элементы form
, прикрепленные к .validate()
.
Более того, поскольку вы используете ASP, вы можете использовать его встроенный плагин Unobtrusive Validation, который автоматически создает и вызывает метод .validate()
на основе ваших атрибутов данных. Просто помните, что если вы пойдете по этому маршруту, вы не сможете позвонить .validate()
самостоятельно. Плагин допускает только один вызов, и после инициализации все последующие вызовы .validate()
игнорируются.