I'm using ASP.NET MVC. In cshtml file I using validator plugin for validation fields. Validation happens on a simple field. Is is code field in cshtml file:
Html.Bootstrap().FormGroup().TextBoxFor(model => model.EAN).Label()).Class("col-lg-6")).Class("row")
ViewModel field code:
[Display(Name = "Kod EAN")]
[RegularExpression("[0-9]{13}",ErrorMessage = "Kod EAN powinien zawierać 13 znaków")]
public string EAN { get; set; }
In View i render script:
Scripts.Render("~/bundles/jqueryval")
I use Ajax to search and add information for my fields.This is my 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);
});
When i try add value for field, everything work fine. The first problem was validate hidden field. I added setDefaults to my validator. This is setDefaults option for hidden validation:
$.validator.setDefaults({
ignore: "",
});
But after adding hidden validate after Ajax POST call, validation doesn't work. After Ajax I see message validation field but submit work.