当输入值以编程方式更改时,更改事件不会执行

时间:2015-03-17 14:18:17

标签: javascript ajax jsf

刷新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的了解有限,我无法使其发挥作用。

提前致谢

1 个答案:

答案 0 :(得分: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.
相关问题