asp.net - 防止表单中的 ASP.NET 文本框提交表单

标签 asp.net forms

这是我正在处理的页面:

http://mcstevenswholesale.com/catalog.aspx

目录下方的文本框可让您跳至目录中的特定页面。但是,如果您在该文本框中按回车键而不是单击“开始”按钮,它会在左上角的列中提交搜索功能。我认为这是因为整个页面都位于 ASP 表单中,但我对右侧的电子邮件注册框没有同样的问题。

我尝试将页码文本框放入其自己的 HTML 表单中,并尝试将按钮更改为图像、按钮和提交输入。这些都没有用。我不希望页面重新加载,只希望页面翻转。我是 ASP 的新手,所以如果我犯了一个非常明显的错误,我深表歉意。

下面是页码文本框的代码(goToPage是一个翻转目录页的JS函数):

<div id="goToPage">
    Go to Page: 
    <input id="pageTextbox" type="text" onkeydown="if (event.keyCode == 13) goToPage();"></input>
    <a onclick="goToPage()" href="#"></a>
</div>

onkeydown 使页面更改生效,但它仍会触发搜索功能。我如何防止它这样做?

最佳答案

回车键的默认行为是在大多数(如果不是全部)浏览器中提交当前表单。

您需要抑制回车键的默认行为。抑制默认行为的正确方法是让事件处理程序返回 false

如果 goToPage() 返回 false,最简单的解决方案如下:

onkeydown="if (event.keyCode == 13) return goToPage();"

如果没有,你可以在调用 goToPage() 之后添加 return false;

onkeydown="if (event.keyCode == 13) { goToPage(); return false} "

这将导致在页码文本框中按下回车键时不提交表单。如果您想为整个页面禁用它,请参阅以下内容:

关于asp.net - 防止表单中的 ASP.NET 文本框提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21267522/

相关文章:

javascript - 检测 HTML 表单提交

javascript - 要求用户在提交表单之前点击谷歌的新验证码

php - 如何在彩色框中使用 php ajax 表单?

asp.net - 翁布拉科 7 : Get all siblings from current page

.net - 更改文件时如何让 ASP.NET 重新启动?

asp.net - Windows身份验证下HttpContext.Current.User为null(集成管道)

css - 使用@Html.EditorForModel 的限制

html - Angular 2 形式 "Cannot Find Control"

javascript - 使用 JavaScript 和 Bootstrap 分段按钮更改表单操作和下拉菜单中的输入值

ASP.NET MVC : When to use custom HTML helper methods vs Html. RenderAction吗?