在
AjaxBehaviorEvent不包含Javascript的任何信息
event对象。您需要自己传递期望的信息。这可以通过一个隐藏的输入字段来实现,该字段的值将由Javascript预填充。例如,
<h:inputText value="#{bean.input}" onkeyup="document.getElementById('#{keyCode.clientId}').value=event.keyCode"> <f:ajax event="keyup" execute="@this keyCode" listener="#{bean.listener}" /></h:inputText><h:inputHidden id="keyCode" binding="#{keyCode}" value="#{bean.keyCode}" />(请注意,其中id
包含了隐藏字段的,execute
以便它在ajax请求中提交,请注意,binding
用来动态获取生成的客户IDdocument.getElementById()
以便设置键值,您也可以对客户端ID(如果已修复)进行硬编码)
与
private String input;private int keyCode;public void listener() { switch (keyCode) { case 13: // Enter key was pressed. break; case 27: // Escape key was pressed. break; default: // Other key was pressed. break; }}您可以
keyCode在Mozilla
DOM参考中找到所有有效值的概述。



