2

我当前的代码是这个,我想要看看在完成键后我是否可以获得返回值。

$("#confirm").keyup(function(event){
    event.preventDefault();
    ajax_pass_check();

});

所以我最终会得到这样的结果,因为我的ajax_pass_check();函数返回真/假。

$("#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~edit:我听取了你们中的一个人的建议(感谢所有回复!)即使我在 keyup 函数中将变量设置为 true,我仍然无法弄清楚为什么我的变量为 false。

$(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');    
    }
});
4

3 回答 3

2

您应该考虑使用变量的全局范围,而不是返回值,并在函数中设置其所需的值:

var wasSuccessful = false;

$("#confirm").keyup(function(event){
   event.preventDefault();
   your_function();
});

function yourfunction() {
  if your awesome code worked { wasSuccessful = true; }
  else { wasSuccessful = false; }
}
于 2013-10-24T07:55:46.543 回答
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 函数只是将你的函数绑定到事件,所以当 key 被释放时这段代码已经执行了。您可能希望调用一个函数,以便在触发 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');    
  }
});
});
于 2013-10-24T07:55:47.773 回答
0

答案是不

jQuery Function keyup 不返回特殊值,只有 jQuery Object可以看到 API(在顶部),因为它仅用于绑定函数。

截屏

依赖于您想要实现的目标,其他人提到的解决方案之一可以解决您的问题。

于 2013-10-24T07:58:09.467 回答