我已经看过很多Javascript解决方案,但我确信必须有一个更简单的方法。
我有一个非常简单的表单 - 一个多行文本框和一个提交按钮。我希望用户能够提交“格式化”文本(例如电子邮件,段落,新行等)
但是,当用户点击Enter以放入回车时,它会提交表格。
我在那里必须有一个属性或控制它的东西,因为这必须是一个常见的问题。 Javascript作为解决方案似乎有点过于复杂。
答案 0 :(得分:21)
将提交按钮上的 UseSubmitBehavior 属性设置为 FALSE 。 (找到解决方案here)
答案 1 :(得分:12)
以下代码解决了我的问题:
http://www.itorian.com/2012/07/stop-from-submission-posting-on-enter.html
<script type="text/javascript">
//Stop Form Submission of Enter Key Press
function stopRKey(evt) {
var evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if ((evt.keyCode == 13) && (node.type == "text")) { return false; }
}
document.onkeypress = stopRKey;
</script>
将其放在母版页中或仅放在您想要的页面中。
答案 2 :(得分:5)
您可以将表单上的DefaultButton或TextBox周围的面板设置为不可见(display:none)按钮。通过这种方式,您可以完全控制用户在没有(依赖于浏览器的)Javascript的情况下点击enter-key时会发生什么。如果您不处理其onclick事件,则将禁止使用enter键。
http://geekswithblogs.net/ranganh/archive/2006/04/12/74951.aspx
答案 3 :(得分:1)
答案 4 :(得分:1)
使用“提交”行为对我不起作用,但这
$(function () {
$(window).keydown(function (e) {
if (e.keyCode == 13) {
e.preventDefault();
return false;
}
});
})
为我工作
答案 5 :(得分:0)
在HTML前端只需用body替换body标签onkeydown =“return(event.keyCode!= 13)
答案 6 :(得分:0)
类似于Max的答案,但显示了完整的代码:
function EnterKeyFilter() {
if (window.event.keyCode == 13) {
event.returnValue = false
event.cancel = true
}
}
window.addEventListener('keydown', EnterKeyFilter)
</script>
当然,它也与其他答案类似,否则它将不起作用,但可能更简单。