调用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();"
答案 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这样的库的原因之一 - 它将所有这些归一化。