Ответ 1
попробуйте
var validator = $("#myFormId").data('validator');
validator.settings.ignore = "";
Вот информативный сообщение в блоге
ИЗМЕНИТЬ
@RAM предложила лучшее решение, пожалуйста ПОСЛЕДУЮЩАЯ ПРОГРАММА
Я использую MVC3 с ненавязчивой проверкой. У меня есть поле, в котором пользователь должен заполнить некоторые данные, а затем нажать кнопку "Поиск". Если поиск не был нажат или пользователь изменил поле ввода после нажатия поиска, форма не может быть отправлена.
Я добавил скрытое поле, которое установлено в true
событием click()
кнопки и опустошено событием keyup()
в поле ввода. Теперь я хотел бы добавить правило проверки, которое требует, чтобы скрытое поле было true
, чтобы разрешить отправку.
Желательно, чтобы я использовал ненавязчивую проверку, но если это не работает, это нормально с чем-то, что требует некоторого javascript, если оно не испортит ненавязчивую проверку для остальной части формы.
Следующий фрагмент кода делает именно то, что я хочу, пока не добавлю type="hidden"
.
<input class="required" id="client-searched" data-val="true"
name="ClientSearched" data-val-required="Press search!"/>
<span class="field-validation-valid" data-valmsg-replace="true"
data-valmsg-for="ClientSearched"/>
попробуйте
var validator = $("#myFormId").data('validator');
validator.settings.ignore = "";
Вот информативный сообщение в блоге
ИЗМЕНИТЬ
@RAM предложила лучшее решение, пожалуйста ПОСЛЕДУЮЩАЯ ПРОГРАММА
У меня была аналогичная проблема, и я использовал этот код для изменения значений по умолчанию в MVC 4:
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
$.validator.setDefaults({
ignore: ""
})
</script>
Источник: Проверка JQuery
В некоторых случаях вы хотите, чтобы просто игнорировал проверку на одном или нескольких
скрытые поля (не все скрытые поля) в 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