首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >window.location未按预期工作

window.location未按预期工作
EN

Stack Overflow用户
提问于 2011-10-21 05:15:07
回答 2查看 326关注 0票数 2

我有一个带有html输入和顶部按钮的asp.net web表单,我需要将其用作搜索框。我需要集成的网页模板与一个用php编写的页面,所以我试图写的搜索框代码,作为与asp.net和php兼容,我可以。

也就是说,我不希望这个按钮是一个提交按钮,因为我不想让它干扰出现在它下面的页面上的任何按钮,这些按钮可能必须是提交按钮本身。

当我单击Go按钮时,一切都按预期工作。很多用户,包括我自己,更喜欢点击enter按钮,然后假设它会点击Go按钮。因为它不是一个提交按钮,所以当我在文本框中点击return时,即使使用onkeydown中的代码来运行搜索/重定向功能,它所做的也只是刷新页面。

搜索框/按钮:

代码语言:javascript
运行
复制
<input onkeydown="if (event.keyCode == 13) doSearch() " id="search" type="text" name="search" value="Search" style="width: 116px;" /><input id="btSearch" onclick="doSearch();" style="width: 33px; margin-left: 2px;" type="button" value="Go" />

搜索功能:

代码语言:javascript
运行
复制
function doSearch() {
    var query = document.getElementById("search").value;
    window.location = "/Search.aspx?" + query;
}

当我点击enter时,会截获重定向到搜索页的什么内容?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-21 05:20:58

你能把整个表格都贴出来吗?在大多数浏览器中,当您在文本字段中点击enter时,默认操作是提交表单,因此您的浏览器在调用JS之后提交表单,因为您的处理程序不会抑制默认操作。要执行此操作,请添加return false:

代码语言:javascript
运行
复制
<input onkeydown="if (event.keyCode == 13) {doSearch(); return false; }" id="search" type="text" name="search" value="Search" style="width: 116px;" /><input id="btSearch" onclick="doSearch();" style="width: 33px; margin-left: 2px;" type="button" value="Go" />

或者,只需将正确的ACTION值放在form标记中-否则表单将不适用于没有JavaScript的用户!

票数 1
EN

Stack Overflow用户

发布于 2011-10-21 05:17:43

很可能您的论坛仍在提交中。添加return false以取消此操作:

代码语言:javascript
运行
复制
<input onkeydown="if (event.keyCode == 13) ( doSearch(); return false; )" id="search" type="text" name="search" value="Search" style="width: 116px;" /><input id="btSearch" onclick="doSearch(); return false;" style="width: 33px; margin-left: 2px;" type="button" value="Go" />

您也可以在onsubmit处理程序中执行此操作,以便在一个调用中同时处理这两个处理程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7842343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档