2014-01-13 2 views
1

У меня возникла проблема с плагином jQuery Validation. Когда я определил пользовательский submitHandler, он сохраняется после первого запуска проверки. Я использую submitHandler для отправки объекта через запрос AJAX, но когда объект изменяется после триггера события, он не изменится в функции обработчика отправки. Есть ли способ обновить обработчик отправки после каждого триггера события?Как обновить submitHandler в jQuery Validation

Мой код

$('.request-telephone-form-submit').click(function(){ 
    var thisForm = $(this).closest('form'); 

    var postVars = new Object(); 
    postVars.name = $('.request-name').val(); 
    postVars.phone = $('.request-phone').val(); 

    thisForm.closest('form').validate({ 
     rules: 
     { 
      Name: { 
       required: true, 

      }, 
      Telephone: { 
       required: true, 

      } 
     }, 
     submitHandler: function(){ 
      $.ajax({ 
       type: 'POST', 
       url: '...', 
       data : postVars, 
       success : function(response) {      

       } 
      }); 

     } 

    }) 

}); 
+0

Может ли ваш код превратить в jsfiddle demo? – Lucky

ответ

1

У вас есть пара ошибок здесь.

Переместите $.validate вызов из click обработчика, и просто сделать это непосредственно в $(document).ready блоке:

$(document).ready(function(){ 
    $('#formID').validate({ 
     //options here 
    }); 
}); 

Если ваш $('.request-telephone-form-submit') является кнопка представить в форме, он автоматически проверит, когда кнопка щелкнул. Если форма проверяется в соответствии с вашим rules, она вызывает функцию submitHandler. В то время вы можете собирать свои переменные сообщений следующим образом:

submitHandler: function(form){ 
     var postVars = new Object(); 
     postVars.name = $('.request-name').val(); 
     postVars.phone = $('.request-phone').val();    
     $.ajax({ 
      type: 'POST', 
      url: '...', 
      data : postVars, 
      success : function(response) {      

      } 
     }); 
    } 
0

Попробуйте обрабатывать события на вашем теге формы и использовать $('form.formClass').on('submit', function(){}), что лучше JQuery стороннюю

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