如何在html中捕获输入密钥并重定向到asp页面?

时间:2012-09-28 08:09:34

标签: javascript html

在我的纯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>

3 个答案:

答案 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"