Javascript a4j:commandButton在按enter键时被调用

Javascript a4j:commandButton在按enter键时被调用,javascript,jsf,Javascript,Jsf,我有两个组件,一个搜索字段和一个命令按钮。命令按钮用于分隔符任务。因此,当输入字段聚焦并且用户点击enter时,它应该重定向到搜索结果页面,并且不应该调用命令按钮 <s:span> <h:inputText value="#{search.input}" onkeypress="performSearch(event)"/> <a4j:commandButton image="icon.jpg" action="#{some action}" aja

我有两个组件,一个搜索字段和一个命令按钮。命令按钮用于分隔符任务。因此,当输入字段聚焦并且用户点击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的操作。有没有办法解决这个问题?

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

因此,

onkeypress="return performSearch(event)"
有点像

function performSearch(event) {
    // ...

    if (notEnterPressed) {
        return true;
    }

    // Perform search.
    // ...

    return false;
}

嗨,我在Firefox 10和IE9上试用过,效果不错。但在早期版本的FF上,如FF3和IE7,问题仍然存在。有没有办法修复它?这是特定于
onkeypress
属性的。如果您还想支持较旧的浏览器,请使用
onkeydown
(或
onkeydup
)。