簡體   English   中英

javascript驗證和ajax調用同時無法正常工作

[英]javascript validation and ajax call simultaneously not working

我在javascript和ajax調用中需要同時工作的代碼。 但這沒有用。 並且總是去返回true。

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";
                }
            }

您嘗試在首次ajax調用后返回兩個值:

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

這將僅返回confirmval函數的結果(似乎總是返回true),並且永遠不會運行“ return false”行,因此它將始終返回true。

如果您需要那個result ==“ yes”來返回false,那么我可能會建議您:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM