尽管使用.cancel类,仍会显示MVC客户端验证消息

时间:2014-12-05 19:18:13

标签: jquery asp.net-mvc asp.net-mvc-4

我的MVC表单上有一个提交按钮(启用了不显眼的验证),其中包含取消类:

<input type="submit" name="Go back" value="1" class="cancel" />

cancel类允许表单POST,即使输入字段有验证错误。但是,只要单击该按钮,就会显示验证错误消息,并且在服务器完成往返并且页面重新显示之前保持可见。

我是否遗漏了MVC,或者如果提交元素具有&#34;取消&#34;类?

1 个答案:

答案 0 :(得分:0)

Disable client-side validation in MVC 3 "cancel" submit button

人们似乎有弹出验证问题,有人在评论中说它不适用于MVC4和MVC5。

Personnaly,il会建议您自己在表单提交事件中控制此行为,并使用ajax发布表单。

$("MyForm").submit(function( event ) {
    event.preventDefault(); //prevent the default submit
    if (!$(this).find("input[type=submit]").hasClass("cancel"))
    {
        if (!$("form").validate())
        {
            return false;
        }
    }
    $.ajax({
       type: "POST",
       url: url,
       data: $("MyForm").serialize(), // serializes the form's elements.
       success: function(data)
       {
           //do something
       }
     });

});

我不确定这会阻止验证弹出提交按钮单击。

另一个解决方案是将提交按钮更改为普通按钮,并自行控制表单的验证和提交。