Как заставить проверку на стороне клиента в $ .ajax () или перед ним? - PullRequest
11 голосов
/ 24 мая 2011

У меня есть форма и ненавязчивые проверки включены. По умолчанию в методе отправки выполняется проверка на стороне клиента, и (если у вас есть какие-либо ошибки) форма выглядит следующим образом:

enter image description here

Проверка происходит еще до того, как на сервер отправляются какие-либо данные.

Теперь это поведение не работает, если вы хотите использовать метод $ .ajax. Проверка на стороне клиента не работает. Вы должны вручную проверить все поля в вашем javascript, потеряв всю красоту DataAnnotations.

Есть ли лучшее решение? Я мог бы использовать jquery submit () , но я думаю, что он не имеет обратного вызова как $. Ajax

Ответы [ 4 ]

12 голосов
/ 24 мая 2011

Ох ...

if (form.valid()) // do submit
2 голосов
/ 26 ноября 2013

Вы должны принудительно подтвердить форму, прежде чем проверять ее действительность.Как то так:

var form = $( "#myform" );
form.validate();
if (form.valid()) {
    // ...
}
1 голос
/ 09 мая 2016

Я сделал ...

$("#form-submit-button").click(function (e) {
    e.preventDefault(); // Stops the form automatically submitting
    if ($("#my-form").valid()) {
        $("#my-form").submit();
    }
});

Это также кажется хорошим решением, если у вас есть, скажем, текстовые поля с плагином, чтобы превратить эти текстовые поля в элемент управления календаря. Единственная причина, по которой я это говорю, заключается в том, что я использовал Zebra Datepicker с формой MVC, и она отправила бы недопустимую форму, если бы фокус был на датчике календаря. Использование кода ниже останавливает это.

0 голосов
/ 07 сентября 2012

У меня была та же проблема, с которой у Ябларго было то, что он говорил, что valid не является функцией, поэтому я придумал следующее:

Для обработчика onclick кнопки отправки я поставил это:

onclick = "return $ (this) .closest ('form'). CheckValidity ();"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...