1

私は新しいです。私はstackoverflowでたくさん読んだことがありますが、これは私の最初の質問です. うまくいけば、それはばかげたものではありません。私は群衆が時々厳しいことを知っています。:)

次のコードでは、最初の入力ボックスにテキストを入力すると、入力内容がアラートに表示されません。ただし、2 番目のボックスでは、何かをキー入力すると、アラートが表示されます。

違いは、'this.value' と 'e.value' の使用にあります。

「e.value」は要素を参照し、「this.value」もそうすると思ったので、両方とも機能するはずだと考えていますが、同じことをしないため、明らかに何かが欠けています。

前もって感謝します。

<!DOCTYPE html>
<html>
<head><script>
window.onload = function () {var e;
    e = document.getElementById('eInput');
    if (!e.onkeyup) {e.onkeyup = function () {alert (e.value); }; }
    e = document.getElementById('thisInput');
    if (!e.onkeyup) {e.onkeyup = function () {alert (this.value); }; }
}
</script></head>
<body>
<input type="text" id='eInput'></input><br><br>
<input type="text" id='thisInput'></input>
</body>
</html>
4

2 に答える 2

2

関数内のeは、イベントをトリガーした要素を参照する必要があります。に変更する必要がありますfunction (e) {alert (e.target.value); }; }

これでe、onkeyup 関数をトリガーしたイベントになり、ターゲットにアクセスして値を取得できます。

http://jsfiddle.net/yAaYX/を参照してください

于 2013-03-27T15:25:30.910 に答える
1

最初の入力が機能しない理由 -e変数が上書きされ、その時点で空である 2 番目の入力を指しています。

2番目の入力の2行を削除すると、問題なく動作することがわかりますe.value- 実際の

または、変数に別の名前を付けてください -e1そしてe2-

于 2013-03-27T15:25:16.893 に答える