【问题标题】:a4j:commandButton gets invoked when hitting entera4j:commandButton 在按下回车时被调用
【发布时间】:2012-06-07 20:14:08
【问题描述】:

我有两个组件,一个搜索字段和一个命令按钮。命令按钮用于分隔任务。因此,当输入字段获得焦点并且用户按 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 是一个在 Enter 上调用实际搜索的 javascript 函数。

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

【问题讨论】:

    标签: javascript jsf


    【解决方案1】:

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

    这样,

    onkeypress="return performSearch(event)"
    

    类似的东西

    function performSearch(event) {
        // ...
    
        if (notEnterPressed) {
            return true;
        }
    
        // Perform search.
        // ...
    
        return false;
    }
    

    【讨论】:

    • 嗨,我在 Firefox 10 和 IE9 上尝试过,它可以工作。但在FF的早期版本,如FF3和IE7,问题依然存在。有什么办法解决吗?
    • 这是特定于onkeypress 属性的。如果您还想支持旧版浏览器,请改用onkeydown(或onkeyup)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多