如何在Firefox 3.5中捕获回车键并使用Window.Location重定向页面?

时间:2009-11-27 03:23:53

标签: asp.net javascript events javascript-events

我正在尝试实现捕获enter键并重定向到ASP.NET 3.5应用程序中的其他页面的搜索功能。不幸的是它在Firefox(版本3.5)中不起作用,但在IE中它工作得很好。请参阅以下代码:

脚本:

function searchKeyPress(e) {
  if (window.event) { e = window.event; }
  if (e.keyCode == 13) {
    document.getElementById('btnSearch').click();
  }
}
function redirect() {
  document.location = "http://localhost:5555/search.aspx?q=keyword";
}

标记:

  <form name="form1" method="post" runat="server" id="form1"/>
     <input type="text" id="txtSearch" onkeypress="searchKeyPress(event);"/>
     <input type="button" id="btnSearch" Value="Search" onclick="redirect();"/>
  </form/>

还有其他人遇到过这个问题吗?

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

为什么不使用“提交”按钮和表单操作将您带到搜索页面?提交按钮显示您默认查找的行为,因此不需要javascript。

<form name="form1" method="get" action="/search.aspx" id="form1"/>
    <input type="text" id="q" />
    <input type="submit" id="btnSearch" Value="Search" />
</form/>

如果你真的想坚持使用你的javascript解决方案(我不建议这样做,因为它不太容易访问并且依赖于javascript)请试一试

function searchKeyPress(e) {
  e = e || window.event || event;
  var code = e.charCode || e.keyCode || e.which;
  if (code == 13) {
    redirect();
  }
}

答案 1 :(得分:-1)

  <script type="text/javascript">
    function searchKeyPress(e) {
        if (window.event) { e = window.event; }
        if (e.keyCode == 13) {
            document.getElementById('form1').submit();
        }
    }
    function redirect() {
       document.location = "http://localhost:5555/search.aspx?q=keyword";
    }
</script>

使用forms.submit()而不是.click(),.click()仅支持,即firefox也支持提交。