1

调用 JavaScript 函数时,返回值对输入表单字段有什么作用?例如:

<script type="text/javascript">
 function foo()
 {
  return true;
 }
</script>
<input type="text" id="txt1" onkeyup="return foo()" />

和变化,IIRConkeyup="foo(); return false"
我真的不需要返回时间,最简单的方法是什么?

现在我正试图从一个事件中调用多个函数,但不确定合适的方法是什么: <input type="text" id="txt1" onkeyup="return foo1(); return foo2();"
<input type="text" id="txt1" onkeyup="return foo1()" onkeyup="return foo2();"

4

3 回答 3

2

return false;用于阻止事件具有其默认效果(在这种情况下,输入的字母不会被添加)。return foo()用于foo判断是否发生return truereturn false因此是否应发生默认操作。

如果您只是调用一个不会影响事件是否实际发生的函数,只需使用onkeyup="foo1(); foo2();". 但是,如果其中一个影响了结果,则应该最后调用它并在它之前有一个return

不过,一般来说,在其中拥有一个函数会更容易,比如onkeyup="return foo()",然后拥有

function foo() {
    foo1();
    foo2();
    return true; // or whatever
}
于 2013-01-31T19:00:22.410 回答
1

最合适的方法是将多个函数绑定到一个事件,如下所示:

ELEMENT.addEventListener('onkeyup', function(event) {
    foo();
    bar();
    fooBar();
}, false);

或者为了进一步简化它,你可以使用 jQuery:

$(element).on({
    keyup: function() {
        foo();
        bar();
        fooBar();
    }
});

*提示:使用this(在 jquery 中)或event.target(非 jquery)来处理事件源。

于 2013-01-31T19:03:46.843 回答
0

理想情况下,您根本不应该将它们内联......您应该使用附加到 dom 元素的事件处理程序。

例如:

document.getElementById('txt1').addEventListener('onkeyup', function() {
   foo1();
   foo2();
});

现在需要注意的是,事件分配不一定是标准化的,因此您需要在不同的浏览器中以不同的方式附加侦听器。这是人们使用像 jQuery 这样的库的原因之一——它规范了这一切。

于 2013-01-31T18:59:12.437 回答