Primefaces - 当焦点位于输入字段时,Jquery热键仅工作一次

时间:2018-05-31 02:17:07

标签: jquery primefaces hotkeys

由于primefaces热键的限制,我把下面的jquery脚本(script source)设置为当焦点在输入字段时热键工作。但是当页面第一次加载时它只能工作一次。如果在任何AJAX调用后尝试它不起作用。我有一个主模板,其中包含head和body标签;所有xhtml文件都包含在其中。下面的代码是关于需要热键的特定XHTML。在输入字段外单击时,热键可以完美地工作。有没有办法让它在输入字段中工作?

<ui:define name="pageJS">       
    <script type="text/javascript">
        /* <![CDATA[ */
        $(function() {$(':input').bind('keydown', 'ctrl+shift+v', function(){saveWidgetVar.jq.click();;return false;});});
        /* ]]> */
    </script>
</ui:define>

下一行包含在一个小组中。

<p:hotkey id="saveKey" bind="ctrl+shift+v" handler="saveWidgetVar.jq.click();" />

是否存在必须放置JQuery脚本的某个位置?

另一方面,我在另一篇博客中注意到,通过更改热键选项可以实现这一点。以下是建议值:

$.hotkeys.options.filterInputAcceptingElements = false;
$.hotkeys.options.filterTextInputs = false;

我不确定在哪里添加这个?

1 个答案:

答案 0 :(得分:0)

我通过删除输入验证来定制primefaces hotkey.js;把它添加到我当地的资源中;然后通过在主模板中包含自定义文件来覆盖原始文件。还在for循环中使用了以下unbind代码以避免多重绑定。

$(document).off('keydown');

一切都很棒!!!