从html输入文本框中按回车键时如何防止回发?
Posted
技术标签:
【中文标题】从html输入文本框中按回车键时如何防止回发?【英文标题】:How to prevent postback while pressing enter key from inside html input textbox? 【发布时间】:2014-03-02 00:43:20 【问题描述】:我在 .aspx 页面中使用 html 输入文本框,当我更改该文本框中的值并按 Enter 键时,意味着页面得到回发。除了在“onkeypress”事件中返回 false 之外,如何防止这种回发。
代码:
textBox[0].setAttribute("onkeydown", "return (event.keyCode!=13);");
谢谢, 卡提克。
【问题讨论】:
onkeypress
上返回 false 是怎么回事?
出于某种原因,我不想在“onkeydown”中使用 return false,是否有任何控件,如 HTML 中的 asp:UpdatePanel 来防止 PostBack?
【参考方案1】:
您需要使用javascript来防止点击进入的默认行为,即提交表单。你需要做这样的事情(我在这里使用 jQuery,它默认包含在 ASP.Net 应用程序中):
$('input[type="text"]').keydown(function(event)
if(event.keyCode == 13)
event.preventDefault();
return false;
);
【讨论】:
是否需要使用 event.preventDefault() ? @fubo 是的,因为默认行为是启动回发。你需要防止这种情况发生。 好的——在我的例子中,return false 会阻止回发。反正很好的解决方案+1 您还需要选择其他输入元素,例如单选框和复选框,因为如果选择了这些元素并且用户然后点击输入按钮,表单将提交。 $('input[type="text"], input[type="radio"], input[type="checkbox"]').keydown...以上是关于从html输入文本框中按回车键时如何防止回发?的主要内容,如果未能解决你的问题,请参考以下文章
当我们从文本框中按 Enter 键时,在单个 jQuery 方法中处理多个操作
C#:如何在文本框中按下回车键触发按钮,但仍然允许“Ctrl+A”等快捷键通过?