我有一个搜索输入字段,想要在用户输入搜索短语后按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>
答案 0 :(得分:1)
我有类似的功能,可以在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>