1

JavaScript関数を呼び出すとき、戻り値は入力フォームフィールドに何をしますか?例えば:

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

とバリエーション、IIRConkeyup="foo(); return false"
私は本当に帰りの時間を必要としません、これを行う最も簡単な方法は何ですか?

現在、1つのイベントから複数の関数を呼び出そうとしていますが、適切な方法がわかりません。 <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()ために使用されます。fooreturn truereturn false

イベントが実際に発生するかどうかに影響を与えない関数を呼び出すだけの場合は、を使用してonkeyup="foo1(); foo2();"ください。ただし、そのうちの1つが結果に影響を与える場合は、最後に呼び出してreturn前に付ける必要があります。

onkeyup="return foo()"ただし、一般的には、たとえば、単一の関数をそこに入れてから、

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

最も適切な方法は、次のように複数の関数を 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のようなライブラリを使用する理由の1つです。これは、これらすべてを正規化します。

于 2013-01-31T18:59:12.437 に答える