【问题标题】:OnClientClick prevent page submission if validation errors如果验证错误,OnClientClick 会阻止页面提交
【发布时间】:2011-08-08 14:51:42
【问题描述】:

我编写了一个 JavaScript 函数,它验证表单输入并突出显示输入字段并显示任何错误消息,我已经对其进行了测试并且一切正常。

我已从 asp:Button 标记的 OnClientClick 属性调用此函数。但是,如果 JavaScript 函数确定存在验证错误,我想阻止表单提交。我该怎么做?

我是 VB.NET 新手,因此我们将不胜感激。谢谢。

ASPX

<asp:Button ID="btnSubmit" Text="Save Changes" runat="server" OnClientClick="validateEMI();" />

JavaScript

function validateEMI() {

     // a big bunch of validation checks...

     if (errorOnForm == true) {
         document.getElementById("message").innerHTML = errorMsg;
         return;
     }
}

【问题讨论】:

    标签: javascript vb.net onclientclick


    【解决方案1】:
    if (errorOnForm == true) {
         document.getElementById("message").innerHTML = errorMsg;
         return false;
    }
    

    返回假;

    编辑:validateEMI 应该与onsubmit 事件挂钩

    【讨论】:

    • 感谢您的快速回复。我已经尝试了'return false',但在错误消息出现后它仍然提交表单。
    • 你需要把它和OnClientClick = "return validateEMI();"结合起来
    • 谢谢。 'return false' 和 'return validateEMI();'似乎成功了。
    【解决方案2】:

    使用stopPropagation

    function validateEMI(event) {
         event.stopPropagation()
         // a big bunch of validation checks...
    
         if (errorOnForm == true) {
             document.getElementById("message").innerHTML = errorMsg;
             return;
         }
    }
    

    【讨论】:

    • 验证成功怎么办?如果errorOnForm === false,我们可能只想stopPropagation
    • 有人能解释一下'event'参数是什么吗?谢谢。
    • @Gareth 请参阅 MDN 上的 Event: DOM Event interface
    猜你喜欢
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多