单击输入字段中的键控事件的链接

Click a link from a keyup event in input field

本文关键字:事件 链接 单击 字段 输入      更新时间:2023-09-26

我有一个搜索输入字段,并希望在用户键入搜索短语后按 Enter 时激活搜索。我还有一个链接控件,它有 SSJS 重定向到另一个 XPage(并且会添加一些我使用 SSJS 获得的参数,所以只使用 CSJS 打开另一个页面不是一种选择)。 这在Chrome中效果很好,但在Firefox中什么也没做。 有人有什么建议吗?

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:br></xp:br>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:inputText id="inputText1" style="width:142.0px">
    <xp:eventHandler
        event="onkeyup"
        submit="false">
        <xp:this.script><![CDATA[if (typeof thisEvent == 'undefined' &&     window.event) { thisEvent = window.event; }
if (thisEvent.keyCode == dojo.keys.ENTER)
{
dojo.byId("#{id:searchButton}").click();
thisEvent.preventDefault();
}]]></xp:this.script>
    </xp:eventHandler></xp:inputText>
<xp:link
    escape="true"
    text="Search"
    id="searchButton">
    <xp:eventHandler
        event="onclick"
        submit="true"
        refreshMode="complete"
        disableValidators="true">
        <xp:this.action><![CDATA[#    {javascript:context.redirectToPage("search.xsp");}]]></xp:this.action>
    </xp:eventHandler>
</xp:link></xp:view>

我有类似的功能,可以在Firefox中按预期工作。不同之处在于我使用 onkeypress 而不是 onkeyup:

<xp:inputText id="searchName" value="#{viewScope.searchName}">
    <xp:eventHandler event="onkeypress" submit="false">
        <xp:this.script><![CDATA[
            if (typeof thisEvent == 'undefined' && window.event) { thisEvent = window.event; }
            if (thisEvent.keyCode == dojo.keys.ENTER)
            {
                dojo.byId("#{id:searchButton}").click();
                thisEvent.preventDefault();
            }
        ]]></xp:this.script>
    </xp:eventHandler>
</xp:inputText>