javascript验证和ajax调用同时无法正常工作

时间:2016-05-13 13:39:02

标签: javascript jquery ajax

我的代码是javascript和ajax调用需要同时工作。但它没有用。并且总是回归真实。

create function的功能是验证数据和执行查询的ajax调用,并依赖于它将进一步执行的结果。如果响应文本为是,则调用 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";
                }
            }

1 个答案:

答案 0 :(得分:-1)

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

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

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

如果你需要那个结果=="是"为了返回false,我可能会建议:

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