【发布时间】:2014-01-29 07:53:28
【问题描述】:
我的 h:inputText 有问题,我不知道如何解决。
我正在使用 JSF 和 RichFaces 处理一个 xhtml 页面,其中包含日历、SelectOneMenu、InputTextArea、Input 等字段。在我的表单末尾,有两个按钮 Print 和 Save。
如果修改了其中一个字段(文本、日期等),我必须禁用“打印”按钮。在每个领域,我都添加了 ajax 事件。
例如:
<rich:calendar datePattern="dd/MM/yyyy" timeZone="#{timeZone.timeZone}" value="#{myBean.date}">
<f:ajax event="change" listener="#{myBean.verifyModification}" render="myForm"/>
</rich:calendar>
如果我的日期改变了,我调用一个存储在我的 bean 中的方法就可以了。
但是,我的 inputText 和 inputTextArea 有问题。
<h:inputText value="#{myBean.name}" maxlength="50">
<a4j:ajax event="keydown" render="myForm" listener="#{myBean.verifyName}" />
</h:inputText>
如果我写得很快,例如,我会留在字母 a 上以在我的领域写 aaaaaaaa。该字段将包含 aaaaaaaa,然后是 aaaa。是不是因为ajax事件太慢了?问题不是来自我的 bean 方法,因为我只测试一个值。
因此,我无法测试该字段。我已经尝试过其他事件,例如模糊、更改。如果我使用这些事件,我必须点击我的字段然后我的按钮是刷新。
你能帮帮我吗?
谢谢。
【问题讨论】:
-
我不知道 JSF,但您的实现不会在按下每个键时与服务器通信吗?因此,您每次都会面临网络延迟,这可能会产生延迟。
-
是的,我在按下每个键时都与服务器通信。但我通过仅渲染按钮面板而不是所有表单来解决问题。
标签: javascript ajax jsf jsf-2