javascriptとajax呼び出しが同時に動作する必要があるというコードがあります。しかし、それは動作しませんでした。そしていつも真実に戻って行きます。javascript検証とajax呼び出しが同時に動作しない
create関数の機能は、クエリを実行し、それがさらに実行される結果に依存するデータとajax呼び出しの検証です。応答テキストがyesの場合は、confirmval関数を呼び出します。そしてさらにそれは確認と次の実行を求めるしかし、私は問題が常に真になるfalseを返す関数ではないに直面している。なぜこれが起こっているのか理解できないのですか?
if(result=="yes"){
return confirmval(companyname,username);
return false;
}
これはちょうど(常にtrueを返すように表示されます)confirmval関数の結果を返す、と「falseを返します:あなたはあなたの最初のAJAX呼び出しの後に2つの値を返すようにしようとしている
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";
}
}
:
あなたはその結果が必要な場合==「yes」にfalseを返すために、私のようなものをお勧めかもしれません。 – epascarello
どうすればこの種の問題を実装できますか – LOKESH
より正確に言うと、非同期呼び出しからの戻り値はどこにもありません。おそらく、ajaxの成功関数内でコールバック関数を呼び出すことをお勧めします。 –