MVC4如何在表单提交时忽略验证

时间:2014-06-16 06:39:19

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

我是MVC验证的新手。当我使用提交表单更改下拉列表中的索引时,我试图忽略验证。但是,如果我在启动验证时有另一个提交按钮,则下面的方法将无效。

下拉列表:

    $("#dropdown").change(function () {

        $('#MyForm').validate().cancelSubmit = true;
        $('#MyForm').submit();
    });

另一个按钮:

    $("#Button").click(function () {
      $('#MyForm').removeData('validator');
      $('#MyForm').removeData('unobtrusiveValidation');
      $.validator.unobtrusive.parse($('#MyForm'));
      $('#MyForm').submit();
    });

因为我有一些html元素是由ajax调用动态生成的,我也想验证那些动态元素,当我点击提交时。这就是我这样做的原因:

      $('#MyForm').removeData('validator');
      $('#MyForm').removeData('unobtrusiveValidation');
      $.validator.unobtrusive.parse($('#MyForm'));

3 个答案:

答案 0 :(得分:3)

最后,我在下面做了一些事情,我解决了这个问题。

$("#dropdown").change(function () {
    $('#MyForm').removeData('validator');
    $('#MyForm').removeData('unobtrusiveValidation');
    $('#MyForm').validate().cancelSubmit = true;
    $('#MyForm').submit();
});

答案 1 :(得分:2)

@using (Html.BeginForm())
{
    { HtmlHelper.ClientValidationEnabled = false;}
}

$('input, textarea, select', 'form').each(function () {
    $(this).attr('data-val', 'false');
});

答案 2 :(得分:0)

您还可以为表单提交按钮添加特殊属性:

<button type="submit" formnovalidate>