我正在尝试实现捕获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/>
还有其他人遇到过这个问题吗?
任何帮助将不胜感激!
答案 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也支持提交。