jquery.validate v. 1.9 игнорирует некоторые скрытые данные - PullRequest
2 голосов
/ 19 декабря 2011

с версией 1.7 все работает нормально, все скрытые данные проверяются,но с версией 1.9 некоторые делают, а некоторые нет Я использую asp.net mvc 3 и jquery.validate + jquery.unobtrusive (jquery 1.7.1)

это сгенерированный html:

    <!--this gets validated-->
        <input type="hidden" data-val="true" data-val-number="The field Chef must be a number." data-val-required="The Chef field is required." value="" name="Chef" id="Chef">    
<span data-valmsg-replace="true" data-valmsg-for="Chef" class="field-validation-valid"></span>

    <!--this one is ignored-->
        <input type="hidden" data-val="true" data-val-number="The field MyFruit must be a number." data-val-required="The MyFruit field is required." value="" name="MyFruit" id="MyFruit">
<span data-valmsg-replace="true" data-valmsg-for="MyFruit" class="field-validation-valid"></span>

кто-нибудь знает, почему это могло произойти?

1 Ответ

7 голосов
/ 19 декабря 2011

Плагин проверки версии 1.9 игнорирует :hidden элементы по по умолчанию .

Еще одно изменение должно упростить настройку форм со скрытыми элементами, теперь они по умолчанию игнорируются(опция «игнорировать» теперь имеет «: скрытый» по умолчанию).Теоретически, это может сломать существующую установку.В маловероятном случае, когда это действительно так, вы можете исправить это, установив параметр игнорирования на «[]» (квадратные скобки без кавычек).

Поскольку вы используете ненавязчивую версию, выне могу установить любую опцию.Таким образом, вы не инициализируете плагин самостоятельно, поэтому вы должны изменить его настройки после его инициализации.Вы можете исправить это так:

var validatorSettings = $.data($('form')[0], 'validator').settings;
validatorSettings.ignore = "";

Этот код работает для первого form элемента в разметке, вы можете указать свои формы и изменить поведение по умолчанию.

...