2015-01-08 3 views
1

На щелчке кнопки Сохранить я делаю вид проверку с помощью jquery.validate.min.jsКак принять решение на основе результата Jquery формы валидатора форм

Я хочу сделать вызов AJAX, если и только если проверка проходит, либо я не хочу, чтобы продолжить выполнение

Это мой код

HTML:

<form id="myform"> 
<input type="text" id="name" name="name" placeholder="Name" class="icon-user" /> 
<a href="#" class="savedata">Save</a> 
</form> 

JS:

$(document).ready(function() { 
    $('#myform').validate({ 
     rules: { 
      name: { 
       required: true 
      } 
     }, 
     messages: { 
      name: { 
       required: 'name required' 
      } 
     } 
    }); 
}); 

$(document).on("click", ".savedata", function (e) { 
    $('#myform').valid(); 
    alert('doing an ajax call here '); 
}); 

Не могли бы вы рассказать мне, как поставить условие для этого?

+0

Это будет 'if ($ ('# myform'). Valid()) {...' Однако вам не нужен обработчик 'click' с' valid'. Вам просто нужно поставить свой 'ajax' в параметр' submitHandler'. – Sparky

+0

Ответ Бананы содержит решение. Однако обратите внимание, что, несмотря на свою формулировку, 'invalidHandler' ** не требуется **. – Sparky

ответ

0

, как указано на веб-сайте плагина: jQuery Validate, вам нужно 2 обратных вызовов:

submitHandler - реализовать свои собственные отправки формы, например. через Ajax.
invalidHandler - реагировать при подаче недопустимой формы.

$(".selector").validate({ 
    invalidHandler: function (event, validator) { 
     //show message that form is invalid 
    }, 
    submitHandler: function() { 
     //submit form using ajax 
    } 
}); 
+0

Параметр 'invalidHandler' не имеет отношения к этому ответу. По умолчанию плагин будет показывать сообщения об ошибках рядом с каждым недопустимым элементом без него. – Sparky

+0

@Sparky вы правы, я просто хотел добавить опцию для пользовательского сообщения об ошибке, если он захочет в будущем. invalidHandler здесь не имеет значения, но не избыточно :) – Banana

+0

Существует так много путаницы с тем, как правильно использовать этот плагин, и я хотел, чтобы это было совершенно ясно для читателя, что 'invalidHandler' ничего не имеет к делу, когда пользователь хочет внедрить 'ajax' в' submitHandler'. С этой скоростью вы могли бы также упомянуть все другие варианты плагинов. – Sparky

Смежные вопросы