【问题标题】:How to stop form being submitted?如何停止提交表单?
【发布时间】:2015-03-08 08:53:40
【问题描述】:

我正在使用 asp.net 网络表单页面。我有一些 javascript 检查某些动态生成的字段是否有值,如果没有则显示一条消息。问题是我还没有找到一种方法来阻止该检查失败时提交表单。

<form id="myform" name="myform" runat="server" onsubmit="finalCheck();">

我尝试过按钮和输入类型:

<button type="submit">submit</button>

<input type="submit" value="submit"/>

finalCheck() 方法总是执行并返回 false。但无论如何,表格仍然存在。

我还需要做些什么来阻止表单被提交吗?

【问题讨论】:

    标签: javascript jquery asp.net webforms


    【解决方案1】:

    事件处理程序中的代码必须从它调用的函数返回值:

    onsubmit="return finalCheck();"
    

    【讨论】:

    • 又短又甜。谢谢!
    【解决方案2】:

    事件处理函数需要返回 false。该函数是onsubmit,而不是finalCheck

    onsubmit="return finalCheck();"
    

    如果您使用的是现代代码,则可以改为在事件对象上调用 preventDefault

    <script>
    document.getElementById('myform').addEventListener('submit', finalCheck);
    
    function finalCheck(event) {
        var myForm = this;
        // do stuff
        event.preventDefault();
    }
    </script>
    

    【讨论】:

      【解决方案3】:

      像这样写你的html:

      <form id="myform" name="myform" runat="server" onsubmit="finalCheck(event);">
      

      然后在您的finalCheck(event) 中写下这个,在第一行以获得良好实践:

      event.preventDefault();
      

      这将停止提交,您可以在preventDefault 函数之后添加更多代码来处理表单数据

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-09
        • 2011-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多