Как принудительно выполнить проверку формы на стороне клиента В $или до$.Аякс()
У меня есть форма и включены ненавязчивые проверки. По умолчанию в методе submit запускается проверка на стороне клиента, и (если у вас есть какие-либо ошибки) форма выглядит следующим образом:
Проверка происходит еще до отправки каких-либо данных на сервер.
Теперь это поведение не работает, если вы хотите использовать $.метод "Аякс". Проверка на стороне клиента не работает. Вы должны вручную проверить все поля в вашем javascript, теряя всю красоту DataAnnotations.
Есть ли лучшее решение? Я мог бы использовать jQuery submit () , но я думаю, что он не имеет обратного вызова, как $.ajax .
4 ответа:
Вы должны принудительно проверить форму, прежде чем проверять, является ли она действительной. Что-то вроде этого:
var form = $( "#myform" ); form.validate(); if (form.valid()) { // ... }
Я так и сделал...
$("#form-submit-button").click(function (e) { e.preventDefault(); // Stops the form automatically submitting if ($("#my-form").valid()) { $("#my-form").submit(); } });
Это также кажется хорошим решением, если у вас есть текстовые поля say с плагином, чтобы превратить эти текстовые поля в элемент управления календарем. Единственная причина, по которой я говорю это, заключается в том, что я использовал Zebra Datepicker с формой MVC, и она отправила бы недействительную форму, если бы фокус был направлен на выбор даты календаря. Используя приведенный ниже код-это.