我的代码是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";
}
}
答案 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
}
}