javascript验证和ajax调用同时不起作用

javascript validation and ajax call simultaneously not working

本文关键字:不起作用 调用 ajax 验证 javascript      更新时间:2023-09-26

我有javascript和ajax调用中的代码需要同时工作。但这并没有奏效。并且总是去回报真实。

create函数的功能是验证数据和ajax调用,执行查询并取决于查询将进一步执行的结果。如果响应文本为yes,则调用confirmval函数。然后它进一步要求确认和下一次执行,但我面临的问题是函数不返回false,它总是返回true。我不明白为什么会发生这种事?

function create()
            {                        
                if (document.companyregister.cmpname.value === "")
                {
                    alert("Please Enter Company name");
                    document.companyregister.cmpname.value = "";
                    document.companyregister.cmpname.focus();
                    return false;
                }
                var companyname = document.companyregister.cmpname.value;
                var username = document.companyregister.username.value;
                    $.ajax({
                    url: 'checkexisting.php',
                    type: 'POST',
                    data: {companyname: companyname,username:username},
                    success: function(errorResponse) {
                        var result = errorResponse.trim();                        
                        if(result=="yes"){                            
                            return confirmval(companyname,username);                                
                        }
                        else{
                            document.getElementById("formsubmitting").style.display = "block";
                            document.getElementById("hidesubmit").style.display = "none";
                            return true;
                        }                        
                        }
                    });
}
function confirmval(companyname,username){
                var c = confirm("This company is already created.'nWould you like to delete existing company?");                
                if(c){  
                    alert("c");                    
                    $.ajax({
                    url: 'updatecompany.php',
                    type: 'POST',
                    data: {companyname: companyname,username:username},
                    success: function(responsetext) {
                        var result = responsetext.trim();                        
                        if(result=="yes"){
                            document.getElementById("formsubmitting").style.display = "block";
                            document.getElementById("hidesubmit").style.display = "none";
                            return true;
                        }                                            
                        }
                    });
                }
                else{
                    alert("notc");                    
                    window.location="http://www.google.com";
                }
            }

您试图在第一次ajax调用后返回两个值:

if(result=="yes"){                            
    return confirmval(companyname,username);
    return false;
}

这只会返回confirmval函数的结果(看起来总是返回true),并且"return false"行永远不会运行,因此它总是返回true。

如果您需要返回false的结果=="yes",我可能会推荐以下内容:

if(result=="yes"){
    var confirmvalResult = confirmval(companyname,username);
    if(confirmvalResult) {
        return false;
    } else {
        // not sure what you want to do here
    }
}