Форма не отправляется с проверкой jQuery - PullRequest
8 голосов
/ 27 октября 2011

У меня возникла небольшая проблема при использовании плагина проверки jQuery в моих проектах .net / MVC: Проверка в целом работает нормально, проблема возникает во время отправки: Я хочу, чтобы форма не отправлялась, если в ней есть какие-либо ошибки проверки, и для этого я установил debug: true;

Но после установки его в значение true, когда кнопка отправки перестает отвечать на запросы, даже когда все в порядке, т. Е. Нет ошибок проверки, ничего не происходит при нажатии кнопки отправки. И если удалить debug: true, он отправляет форму, даже если в ней есть ошибки проверки. Я хочу решение этой проблемы, средний путь, т.е. При нажатии на кнопку отправить, если есть ошибки, она не отправляет форму и показывает ошибки А если ошибок нет, то просто отправляет.

Помогите плз .. Спасибо!

    <script type="text/javascript">
      $(document).ready(function() {
$("#productSubmit").validate( {
  debug : true, rules : {
     prdctttle : {
        maxlength : 50, 
        required : true, 
        onlyChars : true }
     , prdctdscrptn : {
        maxlength : 250, 
        required : true, 
        onlyChars : true }
    }
  , messages : {
     }
  }
); 
}
); 
$.validator.addMethod('onlyChars', function (value) {
return /^[a-zA-Z ,-!]+$/.test(value); }, 'Please enter a valid name with only alphabets');
   $("#productSubmit").validate( {
  submitHandler : function(form) {
     if ($(form).valid()) form.submit(); return false; // prevent normal form posting
     }
  }
);
</script>

Ответы [ 2 ]

11 голосов
/ 27 октября 2011

Измените свою последнюю строку, чтобы проверить правильность формы перед отправкой:

$("#productSubmit").validate({ 
    submitHandler: function(form) {  
                           if ($(form).valid()) 
                               form.submit(); 
                           return false; // prevent normal form posting
                    }
 });

РЕДАКТИРОВАТЬ: Я забыл добавить "вернуть ложь"; строка, чтобы остановить отправку формы в обычном режиме (так происходит только при прохождении проверки).

3 голосов
/ 18 марта 2015

Ответ Грегла по большей части правильный.

Что в конечном итоге заставило меня работать правильно, так это добавление:

onsubmit: false

Финальный код:

$("#productSubmit").validate({ 
 onsubmit: false,
 submitHandler: function(form) {  
   if ($(form).valid())
   {
       form.submit(); 
   }
   return false; // prevent normal form posting
 }
});

Это переопределяет поведение отправки по умолчанию и обрабатывает окончательную проверку и отправку в рамках submitHandler.

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