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 将为空。您可以尝试在分配事件之前提醒其值。
  • 只有当您更改某些内容并从文本框中跳出(即移除焦点)时,onchange 才会触发。
于 2013-01-22T12:22:24.967 回答
1

您希望在键入onchange时触发该事件,但这是不会发生的。

onchange事件仅在文本框失去焦点(换句话说,它模糊)并且内容已更改时触发。 有关信息,请参阅此 MSDN ...

此事件在提交内容时触发,而不是在值更改时触发。例如,在文本框上,此事件不会在用户键入时触发,而是在用户通过离开具有焦点的文本框提交更改时触发。

如果您在键入时想要一个事件,您应该查看onkeydownonkeypressonkeydown事件之一。

于 2013-01-22T12:18:42.530 回答