从HTML表单字段调用JavaScript函数

时间:2013-01-31 18:57:10

标签: javascript html dom

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

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

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

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

3 个答案:

答案 0 :(得分:2)

return false;用于阻止事件具有默认效果(在这种情况下,键入的字母将被添加)。使用了return foo(),以便foo可以判断是return true还是return false,从而判断是否应该执行默认操作。

如果您只是调用一个不会影响事件是否真实发生的函数,只需使用onkeyup="foo1(); foo2();"即可。但是,如果其中一个影响结果,则应将其称为 last ,并在其前面加return

一般情况下,在那里使用单个函数比较容易,比如onkeyup="return foo()",然后有

function foo() {
    foo1();
    foo2();
    return true; // or whatever
}

答案 1 :(得分:1)

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

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

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

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

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

答案 2 :(得分:0)

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

例如:

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

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