Primefaces - 当焦点在输入字段中时,Jquery 热键只工作一次
Posted
技术标签:
【中文标题】Primefaces - 当焦点在输入字段中时,Jquery 热键只工作一次【英文标题】:Primefaces - Jquery hotkey works only once when the focus is in input field 【发布时间】:2018-11-09 23:02:50 【问题描述】:由于 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】:我通过删除输入验证自定义了 primefaces hotkey.js;将其添加到我的本地资源中;然后通过在主模板中包含自定义文件来覆盖原始文件。在 for 循环中还使用了以下取消绑定代码,以避免多次绑定。
$(document).off('keydown');
一切都很好!!!
【讨论】:
以上是关于Primefaces - 当焦点在输入字段中时,Jquery 热键只工作一次的主要内容,如果未能解决你的问题,请参考以下文章
PrimeFaces ajax 更改输入和对另一个字段的操作