2015-06-25 3 views
0

Я работаю над регистрационным пользователем,Ajax in submitHandler form submit не работает

Я проверяю поля с плагинами проверки jquery.

в 'submitHandler' Я назвал Ajax, а затем, если ответ в порядке, тогда форма отправляется .... но форма не отправлена. Но я получил предупреждение «ОК».

Вот мой код,

jQuery(document).ready(function(){ 
// Setup form validation on the #register-form element 
jQuery("#reg_form").validate({ 
// Specify the validation rules 
errorElement: "span", 
rules: { 
    fname: { 
    required: true, 
    maxlength: 12, 
    minlength: 4, 
    remote: {url: "<?php echo get_template_directory_uri() ?>/ajax-checkusername.php", type : "post"} 
    }, 
    lname: "required", 
    phone: {required:true,number: true}, 
    address: "required", 
    email: { 
    email: true, 
    required: true, 
    remote: {url: "<?php echo get_template_directory_uri() ?>/ajax-checkemail.php", type : "post"} 
    }, 
    password: "required", 
    cpassword: { 
    required: true, 
    equalTo: "#password" 
    }, 
    profile_picture: { 
    accept: "image/*" 
    } 
}, 
// Specify the validation error messages 
messages: { 
    fname: { 
    email: "This field is required.", 
    minlength: "Please enter atleast 4 characters", 
    maxlength: "Too much characters", 
    remote: "username already in use!", 
    }, 
    lname: "This field is required.", 
    phone: { 
    required: "This field is required", 
    number: "Please Enter Number" 
    }, 
    address: "This field is required.", 
    email: { 
    required: "Please Enter Email!", 
    email: "This is not a valid email!", 
    remote: "Email already in use!", 
    }, 
    password: "This field is required.", 
    cpassword :{ 
    required:"This field is required.", 
    equalTo:"Password Not matched." 
    }, 
    profile_picture: { 
    accept:"Please Insert Image" 
    } 
}, 
submitHandler: function(form) { 
    var frm = $(form);alert(frm); 

    if (jQuery("#g-recaptcha-response").val()) { 

     jQuery.ajax({ 
      type: 'POST', 
      url: "<?php echo get_template_directory_uri(); ?>/ajax_verify_captcha.php", // The file we're making the request to 
      dataType: 'html', 
      async: true, 
      data: { 
       captchaResponse: jQuery("#g-recaptcha-response").val() 
      }, 
      success: function (data) { 
       alert(data); 

       //jQuery('#reg_form').get(0).submit(); 
       if(data=="OK"){ 
        frm.submit(); 

       } 

       //alert("everything looks ok"); 
       // jQuery('#reg_form')[0].submit(); 

      }, 
      error: function (XMLHttpRequest, textStatus, errorThrown) { 
       alert("You're a bot"); 
       alert(XMLHttpRequest); 
       return false; 
      } 

     }); 


    } else { 
     alert("Please fill the captcha!"); 
     return false; 
    } 


} 
}); 
}); 

ответ

0

Первое, что я хотел бы проверить это значение в пределах, если заявление. Кроме того, вы можете просто использовать (данные), чтобы узнать, определено ли это вообще, или .length, чтобы узнать, установлено ли что-либо.

console.log(data=="OK"); 
if(data.length){ 
    frm.submit(); 
} 

Вы, вероятно, следует возвращать логическое значение или номер и использовать ParseInt(), чтобы убедиться, что вы сравнить две переменные одного и того же типа данных.

+0

thx..Hosch для ваших усилий, но после удаления условия, если состояние еще не работает ....... – vrajesh