在Ajax POST之后,jQuery验证不起作用

时间:2017-01-16 14:03:16

标签: javascript jquery ajax validation

我正在使用ASP.NET MVC。在cshtml文件中,我使用validator plugin作为验证字段。验证发生在一个简单的字段上。是cshtml文件中的代码字段:

  Html.Bootstrap().FormGroup().TextBoxFor(model => model.EAN).Label()).Class("col-lg-6")).Class("row")

ViewModel字段代码:

[Display(Name = "Kod EAN")]
[RegularExpression("[0-9]{13}",ErrorMessage = "Kod EAN powinien zawierać 13 znaków")]
 public string EAN { get; set; }

在View i渲染脚本中:

Scripts.Render("~/bundles/jqueryval")

我使用Ajax搜索并添加我的字段的信息。这是我的Ajax POST

$(document).ready(function () {
function pagination() {
    $('#result-table').each(Utils.Pagination);
}


function getData(id) {
    $.ajax({
        url: "GetSpecific",
        dataType: "json",
        method: "POST",
        cache: false,
        data: {
            id: id
        }
    }).success(function (result) {
        if (result == null) return;
        for (var propName in result) {
            $(".panel [Name$='." + propName + "']").val(result[propName]);
        }
        clear();
    });
}

function clear() {
    $("#result-table").html("");
    $(".modal input").val("");
    $(".pager").remove();
}

function search() {
    var form = $("#search-entry-form :input").serialize();

    $.ajax({
        url: $('#search-entry-form form').attr('action'),
        dataType: "html",
        method: "POST",
        cache: false,
        data: form

    }).success(function (result) {
        $("#result-table").html(result);
        $(".select-specific").on("click", function () { getData($(this).data("specific")) });
        pagination();
    });
}

$("#search-specific").on("click", search);

});

当我尝试为字段添加值时,一切正常。第一个问题是验证隐藏字段。我将setDefaults添加到我的验证器中。 这是隐藏验证的setDefaults选项:

 $.validator.setDefaults({
    ignore: "",
});

但是在Ajax POST调用之后添加隐藏验证后,验证不起作用。在Ajax之后,我看到了消息验证字段,但提交了工作。

0 个答案:

没有答案