在合作伙伴管理中,输入合作伙伴编号或名称时,将显示合作伙伴信息和照片,并隐藏引入合作伙伴编号或名称的输入文本。
然后我想在按下ESC或ENTER键时在我的辅助bean中执行一个方法
我在视图中使用以下javascript来捕获keyup事件:
<script type="text/javascript">
$(document).bind('keyup', function(e) {
debugger;
if (arguments[0].key == 'Esc') {
alert("YEAH");
}
});
</script>
如何调用我的支持bean方法???
public void listener() {
switch (keyCode) {
case(27):
// switch boolean attribute in bean to render view hidden panel
}
}
我尝试过使用远程命令或ajax监听器:
<p:remoteCommand name="remote" actionListener="#{registerVisitBean.listener}" update="input_table"/>
<f:ajax event="keyup" execute="@this keyCode" listener="#{registerVisitBean.listener}" update="input_table" />
<h:inputHidden id="keyCode" binding="#{keyCode}" value="#{registerVisitBean.keyCode}" />
当选择输入文本时,两种方法都会捕获密钥,但是当我隐藏它以显示伙伴信息时,监听器就会停止工作。
有什么想法吗?
谢谢! Ĵ
答案 0 :(得分:2)
<script type="text/javascript">
$(document).bind('keyup', function(e) {
debugger;
if (arguments[0].key == 'Esc') {
alert("YEAH");
// suppose you want to call your listener here
remote([{name: 'key', value: arguments[0].key}]);
}
});
</script>
<p:remoteCommand name="remote" actionListener="#{registerVisitBean.listener}" update="input_table"/>
public void listener() {
Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
String keyCode = params.get("key");
// your code
}