Вам не нужно заключать его в обработчик .submit()
, потому что Validation Plugin уже позаботится об этом. Пожалуйста, обратитесь к официальной демонстрационной странице для рабочих примеров.
$(document).ready(function() {
$("form").validate({
rules: {
match: "required",
limit: "required"
},
messages: {
match: "Please enter a match"
} // <- removed trailing comma
});
});
Кстати, у вас также есть запятая после опций messages:
. Определенные версии IE могут подавиться этим. Это "Завершающая запятая смерти" , и он влияет только на определенные версии IE ... инструменты других браузеров могут не помечать его как ошибку, поскольку технически это не ошибка
Более подробное объяснение происходящего:
Поскольку вы вложили .validate()
в .submit()
, функция проверки даже не загружается, пока вы не нажмете кнопку submit. Поскольку он еще не загружен, когда вы нажмете «Отправить», проверка не будет выполняться. Затем, когда вы нажмете «Отправить» во второй раз, функция будет загружена, поэтому она будет работать нормально.
Когда вы заключаете .validate()
в document.ready
, плагин валидации загружается сразу после завершения загрузки DOM. Таким образом, он готов и ждет, когда вы будете взаимодействовать с вашей формой, и он будет работать правильно при первой отправке.