在JSF 2的AjaxBehaviorEvent中捕获KeyCode
我有一个JSF ajax keyup事件链接到支持bean中的事件列表器。
JSF文件中的代码如下所示。
支持bean中的代码如下所示。
public void changeDetailsEvent(AjaxBehaviorEvent event) { }
我希望根据按键实现不同的逻辑,如下所示为伪代码。
public void changeDetailsEvent(AjaxBehaviorEvent event) { If (event.key = Key.enter) { do something; } else if (event.key = Key.Escape) { so something else; } else { do nothing; } }
有人可以告诉我这是如何在支持bean中完成的吗?
AjaxBehaviorEvent
不包含有关JavaScript event
对象的任何信息。 您需要自己传递所需的信息。 这可以通过隐藏的输入字段来实现,其值将由JavaScript预先填充。 例如,
(请注意隐藏字段的id
包含在execute
以便在ajax请求中提交,请注意binding
用于能够在document.getElementById()
中动态获取生成的客户端ID。为了设置密钥代码值,您也可以硬编码客户端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; } }
您可以在Mozilla DOM参考中找到所有有效keyCode
值的概述。