我当前的代码就是这个,我正在尝试看看是否可以在键完成后获得返回值。
$("#confirm").keyup(function(event){
event.preventDefault();
ajax_pass_check();
});
所以我最终得到类似的东西,因为我的ajax_pass_check();
函数返回true / false。
$("#confirm").keyup(function(event){
event.preventDefault();
return ajax_pass_check();
});
我想知道我是否可以这样做,并尝试类似
的内容var one = $("#confirm").keyup(function(event){
event.preventDefault();
return ajax_pass_check();
});
我是javascript的新手,我在google上看了一段时间,但我还没找到我需要的东西,所以我想我会问。然而,当我尝试这样做时,我没有得到我希望的预期结果。由于var one
仍为false
,因此在函数true
之后应为ajax_pass_check();
〜编辑:我接受了你们其中一个人的建议(感谢所有的回复!)我仍然无法弄清楚为什么我的var one
变量为false,即使我在keyup函数中将其设置为true。 / p>
$(document).ready(function(){
var one = false;
$("#confirm").keyup(function(event){
event.preventDefault();
one = ajax_pass_check();
//one = true; //even if I do that it doesn't work.
});
if(one == true)
{
$('input[type="submit"]').removeAttr('disabled');
}
else
{
$('input[type="submit"]').attr('disabled','disabled');
}
});
答案 0 :(得分:2)
您应该考虑为变量使用全局范围,并在函数内设置其所需的值,而不是返回值:
var wasSuccessful = false;
$("#confirm").keyup(function(event){
event.preventDefault();
your_function();
});
function yourfunction() {
if your awesome code worked { wasSuccessful = true; }
else { wasSuccessful = false; }
}
答案 1 :(得分:1)
不,但你可以调用另一个函数来使用ajax_pass_check的结果。例如,
$("#confirm").keyup(function(event){
event.preventDefault();
doSomethingElse(ajax_pass_check());
});
function doSomethingElse(keyUpOk) { // Do something ... }
假设(根据您的函数名称)您正在使用它来进行某种形式的验证,这将允许您显示或清除错误消息。
你不能做的原因
var one = $("#confirm").keyup(function(event){
event.preventDefault();
return ajax_pass_check();
});
是因为key up函数只是将你的函数绑定到事件,所以当代码被释放时,这段代码就已经被执行了。您可能希望调用一个函数,以便在触发keyup事件后使用keyup事件处理程序的结果完成某些操作,而不是在函数绑定到事件时。
试试这个
$(document).ready(function(){
var one = false;
$("#confirm").keyup(function(event){
event.preventDefault();
one = ajax_pass_check();
//one = true; //even if I do that it doesn't work.
if(one == true)
{
$('input[type="submit"]').removeAttr('disabled');
}
else
{
$('input[type="submit"]').attr('disabled','disabled');
}
});
});
答案 2 :(得分:0)
答案是:否
jQuery Function keyup不返回特殊值,只返回jQuery Object see the API(在顶部),因为它仅用于绑定函数。
依靠您想要实现的目标,其他人提到的解决方案之一可以解决您的问题。