Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中更新的表单验证错误_Javascript - Fatal编程技术网

javascript中更新的表单验证错误

javascript中更新的表单验证错误,javascript,Javascript,根据下面的编码,如果某些数据错误,它将发出false警报。如果确认的pw与密码不同,则可以正常工作。但是,如果loginID检查似乎有一些问题。它分别警告true789 false false 123 false456。为什么结果不假123假456假789假?因为json的延迟?如何解决 var result = "true"; $('#test').click(function(){ validation(); alert(result); }); function v

根据下面的编码,如果某些数据错误,它将发出false警报。如果确认的pw与密码不同,则可以正常工作。但是,如果loginID检查似乎有一些问题。它分别警告true789 false false 123 false456。为什么结果不假123假456假789假?因为json的延迟?如何解决

var result = "true";

$('#test').click(function(){
    validation();
    alert(result);  
});

function validation(){  
    result = "true";
    var loginID = $("#loginID").val();
    var role = $("#role").text();

    // check Login Name
    if (loginID == "" || loginID == null){
        $('#errorID').empty();
        $('#errorID').append(
            '<h6>' + "The Login Name cannot be empty" + '</h6>'
        );
        $("#errorID").show();
        result="false";
    } else {
        $.ajax({
            type: "GET",
            dataType: "jsonp",
            jsonpCallback: "jsoncallback",
            data: {
                ID: loginID,
                role: role          
            },
            url: "http://mydomain.com/checkID.php?jsoncallback=?",

            success: function(data){
                if (data[0].data.user_name!=""){    
                    result="false";
                    alert(result+"123");
                    $('#errorID').empty();
                    $('#errorID').append(
                        '<h6>' + "The Login Name " + data[0].data.user_name + 
                        " is used." + '</h6>'
                    );
                    $("#errorID").show();
                    alert(result+"456");
                }
            },
            error: function(jqXHR, textStatus, errorThrown){
                alert("Request failed: " + textStatus + errorThrown);
                result="false";
            }
        }); //end of ajax
    }
    alert(result+"789");            
    return result;
} // end of #validation
var result=“true”;
$(“#测试”)。单击(函数(){
验证();
警报(结果);
});
函数验证(){
result=“true”;
var loginID=$(“#loginID”).val();
var role=$(“#role”).text();
//检查登录名
if(loginID==“”| | loginID==null){
$('#errorID').empty();
$('#errorID')。追加(
“+”登录名不能为空“+”
);
$(“#errorID”).show();
result=“false”;
}否则{
$.ajax({
键入:“获取”,
数据类型:“jsonp”,
jsonpCallback:“jsoncallback”,
数据:{
ID:loginID,
角色:角色
},
url:“http://mydomain.com/checkID.php?jsoncallback=?",
成功:功能(数据){
如果(数据[0]。数据。用户名!=“”){
result=“false”;
警报(结果+“123”);
$('#errorID').empty();
$('#errorID')。追加(
''+“登录名”+数据[0]。data.user\u Name+
“已使用。”+“”
);
$(“#errorID”).show();
警报(结果+456”);
}
},
错误:函数(jqXHR、textStatus、errorshown){
警报(“请求失败:+textStatus+errorshown”);
result=“false”;
}
});//ajax的结束
}
警报(结果+789”);
返回结果;
}//结束#验证

ajax调用是异步完成的。它进入ajax()函数,然后继续,当结果最终出现时,将触发警报或事件处理程序中的任何内容。 您可以在ajax调用中添加一个
async:false
,它将改变运行方式。789警报将仅在ajax调用完成并响应后运行。 另外,如果您的ajax调用是对您的域进行的,那么您不需要JSONPCCallback,如果响应的标题是
application/json
,那么您也应该删除数据类型,并将其留给jQuery来正确处理