在我的纯HTML页面中,我有一个文本框供用户输入关键字,然后重定向到asp页面。 当用户点击提交按钮时,我使用javascript来捕获关键字。
但是当用户按回车键时,HTML页面将重新加载并返回错误页面。 我怎样才能捕获输入关键事件?这样它就会重定向到asp页面。 感谢
我的javascript代码如下:
function searching() {
var keywordsStr = document.getElementById('keywords').value;
var cmd = "http://xxx/SearchEngine/Searching.aspx?keywords=" + encodeURI(keywordsStr) ;
window.open(cmd);
}
我的html代码如下:
<form name="form1" method="post" action="" >
<input name="keywords" type="text" id="keywords" size="50" >
<input type="submit" name="btn_search" id="btn_search" value="Search" onClick="javascript:searching(); return false;">
<input type="reset" name="btn_reset" id="btn_reset" value="Reset">
</form>
答案 0 :(得分:2)
如果您愿意使用jquery
,
你可以做点什么,
$("#keywords").keyup(function(e){
if(e.keyCode == '13')
{
//enter key
}
});
答案 1 :(得分:0)
为什么不在新窗口中打开表单结果? 我更喜欢使用post:
<form action="http://xxx/SearchEngine/Searching.aspx" method="post" target="_blank">
但您可以像使用代码段
一样使用get调用<form action="http://xxx/SearchEngine/Searching.aspx" method="get" target="_blank">
如果您真的想要检测回车密钥..在您的情况下,我建议您使用onkeydown事件到整个页面,以防止触发与回车键相关的事件(例如提交表单),使用:
document.onkeydown = checkKeycode
function checkKeycode(e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
// alert("keycode: " + keycode);
if (keycode == 13)
{
alert('enter key is pressed: now do something');
}
}
答案 2 :(得分:0)
你的'action'属性为空,这意味着HTML页面会自行发布(基本上重新加载)。您需要将ASP页面的URL放在那里才能发布数据。
<form name="form1" method="get" action="http://xxx/SearchEngine/Searching.aspx">
<input name="keywords" type="text" size="50" >
<input type="submit" name="btn_search" value="Search">
<input type="reset" name="btn_reset" value="Reset">
</form>
您可能希望将方法更改为method="get"
以模仿您的javascript函数。
如果您希望提交创建新窗口,则可以向表单添加目标属性:
target="_blank"