В некоторых случаях вы хотите просто игнорировать проверку одного или нескольких скрытых полей (не всех скрытых полей) в client side
, а также вы хотите проверить их и другие скрытые поля вserver side
.В этих случаях у вас есть атрибуты проверки для всех скрытых полей в вашем ViewModel
, и они будут использоваться для проверки формы при ее публикации (server side
).
Теперь вам нужен трюк, чтобы просто проверить некоторыескрытых полей на стороне клиента (не все).В этих случаях я рекомендую вам использовать мой механизм!
Установить data-force-val
как true
в целевых скрытых тегах ввода.Это наш пользовательский атрибут, который мы используем для обнаружения целевых скрытых входов, когда мы хотим проверить их на стороне клиента.
// This hidden input will validate both server side & client side
<input type="hidden" value="" name="Id" id="Id"
data-val-required="The Id field is required."
data-val="true"
data-force-val="true">
// This hidden input will validate both server side & client side
<input type="hidden" value="" name="Email" id="Email"
data-val-required="The Email field is required."
data-val="true"
data-force-val="true">
// This hidden input just will validate server side
<input type="hidden" value="" name="Name" id="Name"
data-val-required="The Neme field is required."
data-val="true">
Также вы можете установить data_force-val
для скрытых входов с помощью jQuery
:
$("#Id").attr("data-force-val", true); // We want validate Id in client side
$("#Email").attr("data-force-val", true); // We want validate Email in client side
$("#Name").attr("data-force-val", false); // We wont validate Name in client side (This line is not necessary, event we can remove it)
Теперь, активируйте data-force-val="true"
функциональность с помощью некоторых простых кодов, подобных этим:
var validator = $("#TheFormId").data('validator');
validator.settings.ignore = ":hidden:not([data-force-val='true'])";
Примечание: validator.settings.ignore
значение по умолчанию :hidden