2017-09-06 3 views
0

콘솔에서이 오류가 발생 함 Uncaught TypeError : form.serialize가 함수가 아닙니다. 어떻게 submithandler의 ajax 유효성을 검사 할 때이 오류를 수정할 수 있습니까?유효성 검사의 submithandler ajax가 Uncaught를받는 중 TypeError : form.serialize가 함수가 아닙니다.

$('#form').validate({ 
       errorClass: 'fieldError', 
       onkeyup:  false, 
       onblur:  false, 
       errorElement:'label', 

       submitHandler: function(form) { 
        $.ajax({ 
         url: form.action, 
         type: form.method, 
         data: form.serialize(), 
         success: function(response) { 
          if (response == false) 
          {alert('could not submit!')} 
         } 

        }); 

       } 
      }); 
+0

사용 $ ('# 양식')의 기본 양식을 포장해야 –

+0

는 FYI() 직렬화 -. onblur''라는 그런 옵션이 없습니다. 가장 가까운 옵션은'onfocusout'입니다. – Sparky

답변

1

는 jQuery를 검증 플러그인에 대한 documentation에 따르면, submitHandler 콜백 유일한 인수로 기본 양식을 가져옵니다.

기본 형식은 serialize() 메서드가 없습니다. jQuery 메서드이기 때문입니다.
당신은 $()

submitHandler: function(form) { 

    var $form = $(form); 

    $.ajax({ 
     url  : $form.attr('action'), 
     type : $form.attr('method'), 
     data : $form.serialize(), 
     success : function(response) { 
      if (response == false) { 
       alert('could not submit!')} 
      } 
     }); 
    }); 
}); 
+0

나는이 솔루션을 이미 시도했지만이 var $ form = $ (this); 그래서 또 다른 예외를 얻는다. 이 솔루션에 대해 +1 수정되었습니다. 고마워요! – Haroon

+1

@Haroon은'submitHandler'에서'$ (this)'는 폼이 아닌 validator 객체입니다. – Sparky