gpt4 book ai didi

javascript - 如何处理函数中的返回值?

转载 作者:行者123 更新时间:2023-11-30 17:43:03 26 4
gpt4 key购买 nike

我有这个功能:

function kontrola(){    
var jmeno = self.document.forms.newPassForm.user.value;
$.get("checkMail.php?mail="+jmeno, function(data){
if(data=='1'){
alert('Tento uživatel v databázi neexistuje!');
return false;
}else return true;
});
}

我现在的问题是,警报没有显示(数据变量的值传递正常)。如果我添加 return false;在功能结束时,会显示警报,但如果条件未满足,我无法从表单发送数据。您对此有什么解决方案吗?

最佳答案

return 在 jQuery 回调中做的事情与在普通函数中做的不同。

jQuery View return true; as continue(并假定您只是想跳到 jQuery 对象集合中的下一个对象)并且 return false; as break(假设您只是想跳出当前迭代)。 return false 在某些事件处理程序中使用时也会阻止默认事件行为,但这不是推荐的方法。

完成获取返回值的更好方法是将您的调用函数与您注入(inject)到 get 调用中的回调“拆分”。

function kontrola(callback){    
var jmeno = self.document.forms.newPassForm.user.value;
$.get("checkMail.php?mail="+jmeno, function(data){
if(data=='1'){
alert('Tento uživatel v databázi neexistuje!');
callback(false);
}else{ callback(true); }
});
}

function someCaller(){
var someWork = 1 + 2;
//split the rest of this call function to be done inside of the callback
kontrola(function(result){
var boolResult = result;
if( boolResult ){
//do more work
}else{
//handle false case
}
});
}

编辑

因为这是附加到提交按钮,我建议发送带有事件的提交元素

onsubmit = return "kontrola(this);"

因为如果成功的话你要晚点提交

function kontrola(submitElement){    
var jmeno = self.document.forms.newPassForm.user.value;
$.get("checkMail.php?mail="+jmeno, function(data){
if(data=='1'){
alert('Tento uživatel v databázi neexistuje!');
}else{ submitElement.submit(); }
});
return false;
}

关于javascript - 如何处理函数中的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20667217/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com