我有一个JSF ajax keydown事件链接到备用bean中的事件侦听器。
JSF文件中的代码如下。
<p:inputText value="#{someBean.value}>
<p:ajax event="keydown" listener="#{someBean.keyDownEvent}" />
</p:inputText>
Run Code Online (Sandbox Code Playgroud)
我想获取“输入”按钮事件代码。当我单击Enter时,我需要在服务器端执行一些特定的事件。如何使用ajax调用获取事件代码?
因为您只想在Enter按下键时执行操作,所以我真的不会使用Ajax调用将每个键发送到后端,而是确定按下了哪个键。
只需检查前端是否有回车,如果刚检测到,则使用调用后端p:remoteCommand。但是这里有一个陷阱。输入woud提交默认情况下,整个表单,所以一定要回false的时候keyCode为输入(13)被发现。
然后,进行验证。如果您碰巧在表单中有多个输入,则可能会遇到验证错误。因此,将远程命令设置为仅处理自身和按下Enter键的输入。(可选)您可能希望更新p:message链接到输入的字段以显示任何验证错误。
这将导致:
<p:remoteCommand name="myRemCo"
action="#{someBean.action}"
process="@this myInput"
update="myInputMessage"/>
<p:inputText id="myInput"
value="#{someBean.value}"
onkeydown="if (event.keyCode === 13) { myRemCo(); return false; }"
required="true"/>
<p:message for="myInput" id="myInputMessage"/>
Run Code Online (Sandbox Code Playgroud)
请注意,required="true"在输入仍然为空的情况下,如果您按Enter键,我将在那里演示如何更新消息。
也可以看看:
| 归档时间: |
|
| 查看次数: |
3888 次 |
| 最近记录: |