javascript - a4j :commandButton gets invoked when hitting enter

标签 javascript jsf

我有两个组件,一个搜索字段和一个命令按钮。命令按钮用于分隔符任务。因此,当输入字段获得焦点并且用户按下 Enter 键时,它应该重定向到搜索结果页面,并且不应调用命令按钮。

<s:span>
    <h:inputText value="#{search.input}" onkeypress="performSearch(event)"/>
    <a4j:commandButton image="icon.jpg" action="#{some action}" ajaxSingle="true">
    </a4j:commandButton>
</s:span>

performSearch 是一个 JavaScript 函数,它在 Enter 上调用实际搜索。

现在,当在输入字段上按 Enter 键时,将调用 commandButton 的操作。有解决办法吗?

最佳答案

当按下 Enter 键时,onkeypress 应返回 false。这将阻止回车键的默认操作。

所以,

onkeypress="return performSearch(event)"

类似的东西

function performSearch(event) {
    // ...

    if (notEnterPressed) {
        return true;
    }

    // Perform search.
    // ...

    return false;
}

关于javascript - a4j :commandButton gets invoked when hitting enter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10939180/

相关文章:

java - 尝试显示消息框时,NetBeans IDE 6.9.1 中的 Glassfish 服务器停止工作

jsf - p :dataTable rowEdit are not available in listener method as they are being overwritten by existing data from database 中的编辑/更新值

javascript - 使用 $cordovaOauth 使用 Facebook 登录

javascript - 在 JavaScript 中调用 object.width 返回 NaN

java - 我应该在哪里放置 XHTML 文件才能使其在 GlassFish Web 容器中可见?

html - html表格行的行计数器

javascript - 命令值的事件监听器

javascript - 如何确保 JQuery 的一行在另一行之前运行

javascript - d3.js 带标签的强制定向树

java - JSF - 清除 session 范围内托管 bean 中的值