从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 方法中处理多个操作

用户在文本框中按下回车的 JQuery 事件?

C#:如何在文本框中按下回车键触发按钮,但仍然允许“Ctrl+A”等快捷键通过?

C#:如何在文本框中按下输入触发按钮,但仍允许“Ctrl + A”等快捷方式通过?

在文本框中按 Enter 时如何触发 HTML 按钮?