清洁方式以防止输入按钮提交表单

时间:2011-04-21 09:52:30

标签: asp.net forms submit

我已经看过很多Javascript解决方案,但我确信必须有一个更简单的方法。

我有一个非常简单的表单 - 一个多行文本框和一个提交按钮。我希望用户能够提交“格式化”文本(例如电子邮件,段落,新行等)

但是,当用户点击Enter以放入回车时,它会提交表格。

我在那里必须有一个属性或控制它的东西,因为这必须是一个常见的问题。 Javascript作为解决方案似乎有点过于复杂。

7 个答案:

答案 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)

你尝试过这个吗? - Enter key in textarea

答案 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>

当然,它也与其他答案类似,否则它将不起作用,但可能更简单。