在表单内防止ASP.NET文本框提交表单



这是我正在处理的页面:

http://mcstevenswholesale.com/catalog.aspx

目录下方的文本框使您可以跳到目录中的特定页面。但是,如果您点击该文本框中的输入而不是单击" GO"按钮,则将搜索功能在左上列中提交。我认为这是因为整个页面都位于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使页面更改起作用,但仍会启动搜索功能。我如何阻止它这样做?

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

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

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

onkeydown =" if(event.keycode == 13)return gotopage();"

如果没有,您可以在致电gotopage();

后添加返回false

onkeydown =" if(event.keycode == 13){gotopage(); return false}"

将导致Enter键在页码文本框中按下时不提交表格。如果要为整个页面禁用它,请参见以下内容:

  • http://webcheatsheet.com/javascript/disable_enter_key.php
  • https://stackoverflow.com/questions/6017350/i-need-javascript-function-to-disable-enter-key

尝试以下:

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

最新更新