我一直在寻找和寻找最好的方法来做到这一点,但无法给出明确的答案
我通过将值发布到 php 脚本来验证表单,该脚本检查它们是否已经存在于数据库中。我有几个需要验证的字段,其中一个是电子邮件。
我有以下基本代码
jQuery(document).ready(function(){
jQuery("#signup_submit").click(function(){
var u_email = jQuery('#signup_email').val();
var email_check = 0;
var email_checked = "no";
if (jQuery('#signup_email').val()) {
jQuery.post("/check-username-email",{ user_email:jQuery('#signup_email').val() } ,function(data){
//if email not avaiable
if(data == 0) {
email_checked = "yes";
email_check = 0;
alert(email_check + " 1");
}
//if email is not vaild
else if(data == 2){
email_checked = "yes";
email_check = 0;
alert(email_check+ " 2");
}else{
email_checked = "yes";
email_check = 1;
alert(email_check + " 3");
}
});
}else{
email_checked = "yes";
email_check = 0;
alert(email_check + " 4");
}
// IN NEED THIS NEXT BIT TOW WAIT UNTIL THE PREVIOUS SECTION HAS FINISHED BEFORE EXECUTING
if (email_checked=="yes"){
if (email_check==1){
alert("ok");
}else{
alert("notok");
}
}else{
alert("email not checked");
}
//jQuery("#signup_form_standalone").submit()
});
});
我的问题是底部的 if 语句在第一个函数验证之前执行。
我已经阅读了有关 jQuery.when 和 callbacks() 的信息,尝试了它们,但无法让它按需要工作。
我究竟做错了什么?必须有一种简单的方法来实现我正在尝试做的事情,但我不知道它是什么:) 我过去在与动画不对齐时使用过队列和回调,但这些似乎并不适用这里也是一样。
干杯。