使用a4j:queue进行事件同步
我在表单上有一个输入文本和一个按钮。
我处理输入文本的事件 onchange
和按钮的 onclick
事件。
如果用户更改文本然后单击按钮,触发 2 个事件,有时它们会同时处理。
我希望在 onchange
完成后处理 onclick
。
为此,我使用<代码>
标记事件,如下所示:
<a4j:queue name="myQueue"/>
...
<h:inputText id="dateFromText" value="#{flowScope.fileSearchCriteria.fromDateStr}">
<a4j:support event="onchange" eventsQueue="myQueue" reRender="datePanel1"
actionListener="#{fileSearchCriteria.changeTextFromDate}"/>
</h:inputText>
....
<h:commandButton id="fileInSearch" action="fileInSearch"
value="#{resourceBundle.searchIn}" type="submit">
<a4j:support eventsQueue="myQueue" event="onclick"/>
</h:commandButton>
...
结果,onclick 并非每次
onchange
之后都会被处理。
I have an input text and a button on the form.
I process event onchange
for input text and onclick
for button.
If the user changes the text and then click the button 2 events fired and sometimes they are processed simultaneously.
I would like onclick
to be processed after onchange
completed.
For this I use <a4j:queue name="myQueue"/>
and mark events with <a4j:queue name="myQueue"/>
like this:
<a4j:queue name="myQueue"/>
...
<h:inputText id="dateFromText" value="#{flowScope.fileSearchCriteria.fromDateStr}">
<a4j:support event="onchange" eventsQueue="myQueue" reRender="datePanel1"
actionListener="#{fileSearchCriteria.changeTextFromDate}"/>
</h:inputText>
....
<h:commandButton id="fileInSearch" action="fileInSearch"
value="#{resourceBundle.searchIn}" type="submit">
<a4j:support eventsQueue="myQueue" event="onclick"/>
</h:commandButton>
...
And as a result, onclick
is processed not every time after onchange
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
每次应该有两个事件:onchange 和 onclick。但是,我建议切换到 a4j:commadnButton,而不是使用内部带有 a4j:support 的 h:commandButton。
You should have two events each time, onchange and onclick. But, I'd recommend to switch to a4j:commadnButton instead of using h:commandButton with a4j:support inside.