submitHandler
уже переопределяет событие по умолчанию, поэтому просто поместите туда код для отправки ajax:
jQuery.validator.setDefaults({
submitHandler: function(){
jQuery.post(base_url + "blog/ajax_comment", { author: jQuery("#author").val(), email: jQuery("#email").val(), url: jQuery("#url").val(), message: jQuery("#message").val() , post_ID: jQuery("#post_ID").val(), not: jQuery("#not").val() }, function (data) {
//do stuff here
});
}
});
Если у ваших элементов есть name
атрибуты, которые соответствуют их идентификаторам, просто используйте .serialize()
, например:
jQuery.validator.setDefaults({
submitHandler: function(form){
jQuery.post(base_url + "blog/ajax_comment", jQuery(form).serialize(), function (data) {
//do stuff here
});
}
});
Что происходит с вашим текущим кодом, так это то, что в обработчике submit
он присоединяет a новый обработчик submit
для next времени, а не на самом деле запуск вашего кода. Вместо этого просто запустите код прямо в обратном вызове submitHandler
.