0

イベントonchangeをテキストボックスコントロールに関連付けました。

var tbValue = document.getElementById("tbValue");
    tbValue.onchange = function () {
        var tbSelText = document.getElementById("selectText");
        if (tbValue.value == null) {
            tbSelText.value.replace("sada", "");
        }
        else {
            tbSelText.value.replace("sada", "sada" + tbValue.value + "'");
        }
    }

tbValue(onchangeイベントを含むテキストボックスコントロール)を変更すると、tbSelTextも同時に変更する必要があります。しかし、そうではありません。私が間違ったことは何ですか?

4

2 に答える 2

2

以下の点で確認してください。

  • 上記のJsコードが呼び出されるときは、その前にDOMの準備ができている必要があります。そうしないと、tbValueがnullになります。イベントを割り当てる前に、その値をアラートしてみることができます。
  • onchangeは、何かを変更してテキストボックスからタブアウトする(つまり、フォーカスを削除する)場合にのみ起動します。
于 2013-01-22T12:22:24.967 に答える
1

入力中にイベントが発生することを期待していると思いますが、これは発生しません。onchange

このonchangeイベントは、テキストボックスのフォーカスが失われた場合(つまり、ぼやけた場合)、およびコンテンツが変更された場合にのみ発生します。 詳細については、このMSDNを参照してください...

このイベントは、値が変更されている間ではなく、コンテンツがコミットされたときに発生します。たとえば、テキストボックスでは、ユーザーが入力している間ではなく、ユーザーがフォーカスのあるテキストボックスを離れて変更をコミットしたときに、このイベントが発生します。

入力中にイベントが必要な場合はonkeydownonkeypressまたはonkeydownイベントの1つを確認する必要があります。

于 2013-01-22T12:18:42.530 に答える