【问题标题】:On change event doesn't get executed when input value is programatically changed以编程方式更改输入值时不会执行更改事件
【发布时间】:2015-03-17 14:18:16
【问题描述】:

我在刷新 dataTable 内容时遇到问题。这是我的代码的一部分。

<h:inputText id="counterFeatures" value="#{myBean.quantity}">
      <f:ajax event="change" render="myDataTable" execute="counterFeatures"></f:ajax>
</h:inputText>

我喜欢做的是当数量变化时(使用 js 脚本动态),从我的 bean 中调用 setQuantity() 方法并更新该值。

我尝试使用execute="@this",但它也不起作用。我需要说的是,当我设置像event="keyup" 这样的事件时它可以工作,但我想让事情自动发生,因为在所有数字都通过 JavaScript 脚本插入之后。

我看了一些答案,但由于我对 jsf 的了解有限,我无法使其工作。

提前致谢

【问题讨论】:

    标签: javascript ajax jsf


    【解决方案1】:

    这确实是正常行为。 HTML DOM change 事件仅在最终用户操作输入字段后触发。如果输入字段由 JavaScript 以编程方式操作,您基本上需要让相同的 JavaScript 代码手动触发 change 事件。

    假设您使用的是Vanilla JS(不是jQuery),它的外观如下:

    var input = document.getElementById(...);
    input.value = newValue;
    input.onchange(); // Trigger JavaScript code declared in `onchange` attribute.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-21
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      • 1970-01-01
      相关资源
      最近更新 更多