抓住关键pressed无需输入字段Ajax事件 [英] Catch key pressed ajax event without input fields

查看:214
本文介绍了抓住关键pressed无需输入字段Ajax事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在一个合作伙伴管理,在合作伙伴的编号或名称输入,合作伙伴信息及图片显示和输入文本,介绍合作伙伴编号或名称被隐藏。

然后我想在我的支持bean执行一个方法时,ESC键或回车键为pressed

我赶上keyup事件与下面的JavaScript中的观点:

 <脚本类型=文/ JavaScript的>
    (文档)$ .bind('的keyup',函数(E){
        调试器;
        如果(参数[0] .KEY =='Esc键'){
            警报(是);
           }
    });
< / SCRIPT>
 

我怎么能说我支持bean的方法???

 公共无效监听器(){
    开关(钥匙code){
    案例(27):
       //切换在豆布尔属性来渲染视图中隐藏面板
    }
}
 

我trye​​d与远程命令或AJAX监听器:

 <电话号码:remoteCommand名=远程的ActionListener =#{registerVisitBean.listener}更新=input_table/>


< F:Ajax事件=KEYUP执行=@这个键code监听器=#{registerVisitBean.listener}更新=input_table/>
< H:inputHidden ID =键code绑定=#{键code}值=#{registerVisitBean.key code}/>
 

这两种方法都赶上KEYUP当选择输入文本,但是当我将其隐藏以显示合作伙伴的信息,监听器停止工作。

任何想法?

谢谢! Ĵ

解决方案

 <脚本类型=文/ JavaScript的>
    (文档)$ .bind('的keyup',函数(E){
        调试器;
        如果(参数[0] .KEY =='Esc键'){
            警报(是);
            //假设你想在这里呼吁监听器
            远程([{名称:'键',值:参数[0] .KEY}]);
           }
    });
< / SCRIPT>

<电话号码:remoteCommand名=远程的ActionListener =#{registerVisitBean.listener}更新=input_table/>


公共无效监听器(){
   地图<字符串,字符串> PARAMS = FacesContext.getCurrentInstance()getExternalContext()getRequestParameterMap()。
   字符串键code = params.get(钥匙);

   //你的code
}
 

In a partner management, when partner number or name is entered, the partner info and photo are shown and input text to introduce partner number or name is hidden.

Then I want to execute a method in my backing bean when ESC or ENTER key are pressed

I catch the keyup event with with following javascript in the view:

<script type="text/javascript">
    $(document).bind('keyup', function(e) {
        debugger;
        if (arguments[0].key == 'Esc') {
            alert("YEAH");
           }
    });
</script>

How can i call my backing bean method???

public void listener() {
    switch (keyCode) {
    case(27):
       // switch boolean attribute in bean to render view hidden panel  
    }
}

I've tryed with remote command or ajax listener:

<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}" />    

Both methods catch the keyup when input text is selected but when i hide it to show partner info, listener stop working.

Any ideas?

Thanks! J

解决方案

<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     
}

这篇关于抓住关键pressed无需输入字段Ajax事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆