【问题标题】:Input textbox onchange is not firing when data is assigned to input textbox将数据分配给输入文本框时,输入文本框 onchange 不会触发
【发布时间】:2010-08-30 13:17:47
【问题描述】:

这是我的 HTML 页面

<script>
function set()
{
document.getElementById("txt").value++;
}
</script>
<input id="txt" type="text" onchange="javascript:alert('txt changed');" value="0">
<br/>
<input type="button" onclick="set()" value="Set Data"/>

当我按下按钮时,文本框的值正在改变,并且 onchange 事件没有触发, 但是当我在文本框中手动输入值时,它会触发 onchange。

我只想在单击按钮时在文本框中更改数据时调用 JavaScript 函数。

你能帮忙吗?

【问题讨论】:

    标签: html textbox onchange


    【解决方案1】:

    在通过代码更改值后,您可以使用 document.getElementById("txt").onchange(); 从代码中触发 onchange

    更新

    更改您的设置函数以获取文本框的 id

    function set(textboxid)
    {
        var tb = document.getElementById(textboxid);
        tb.value++;
        tb.onchange();
    }
    

    【讨论】:

    • 这是一个快速回复,但我的问题是我有 5-6 个文本框,每个文本框都有单独的按钮。在这种情况下,我必须在每次单击按钮时调用它。任何其他选择
    【解决方案2】:

    这似乎是一个浏览器错误。使用萤火虫,我已经在输入中记录了所有事件。当您使用函数 set() 更改值时会触发任何事件;

    我在 Firefox 中测试过。


    注意:如果不是错误,那么至少是对事件如何工作的错误定义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-08
      • 2017-10-02
      相关资源
      最近更新 更多