2015-06-25 16 views
0

我正在注册用户,Ajax里面submitHandler表单提交不工作

我验证字段与jQuery验证插件。

在'submitHandler'我打电话给Ajax,然后如果响应是好的,然后表单submited ....但形式不submited.but我得到了“OK”的警报。

这里是我的代码,

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

我会检查的第一件事是if语句中的值。此外,你可以使用(数据)来查看它是否被定义或者是否被设置为任何东西。

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

您应该可能返回一个布尔值或数字,并使用parseInt()来确保您比较两个相同数据类型的变量。

+0

thx..Hosch为你的努力,但删除条件后,如果条件,它仍然工作....... – vrajesh