У меня есть простой мастер из трех простых шагов.jQuery Шаги и проверка нескольких панелей
В первых двух шагов, у меня есть некоторые элементы управления формы с парой выбора управления, которые обрабатываются с помощью выбранного плагина
<div class="col-lg-6 col-lg-offset-1">
<label for="ExpirationMode" class="control-label">Da operazione</label>
<div class="">
<select name="ExpirationMode" id="ExpirationMode"
class="chosen-select form-control" data-placeholder="Select an item" data-rule-required="true" data-msg-required="Required field">
<option value=""></option>
@foreach (ExpirationModeViewModel e in expirationModeList) {
<option value="@e.ExpirationModeID">@e.Description</option>
}
</select>
</div>
</div>
со следующим JavaScript
$('.chosen-select').chosen({
disable_search_threshold: 10,
no_results_text: 'Oops, no results found',
allow_single_deselect: true,
width: '100%'
});
Для обработки проверки с выбранный плагин Я добавил следующие настройки валидатора в событии onStepChanging
onStepChanging: function (event, currentIndex, newIndex) {
// Disable validation on fields that are disabled or hidden.
form.validate().settings.ignore = ":disabled,:hidden:not('select.form-control')";
// Start validation; Prevent going forward if false
return form.valid();
},
Проблема возникает, когда я добавляю еще один выбранный выбор во второй панели. Команда form.validate().settings.ignore = ":disabled,:hidden:not('select.form-control')";
пытается проверить также выбранные элементы, которые находятся во второй панели.
Как я могу это решить? Могу ли я сказать валидатору для проверки только элементов управления, содержащихся в текущей панели?
В ваших настройках «игнорировать» вы не должны игнорировать * любые * из выбранных элементов. Тем не менее, вам все равно нужно игнорировать выбранные элементы в скрытых панелях, поэтому лучше настроить параметр 'ignore'. Должно быть достаточно простым, поэтому не уверен, как вы застряли. – Sparky
Где * точно * вы положили опцию/функцию 'onStepChanging'? Вы сказали * «Я добавил следующие настройки валидатора» *, однако есть ** нет такой ** опции проверки jQuery, которая называется 'onStepChanging'. – Sparky
@Sparky: Благодарю вас за ответ. Пожалуйста, извините мой бедный английский. 'OnStepChanging' является обработчиком событий из плагина jquery Steps. Я думаю, что я застрял именно в том, что я не знаю, как проинструктировать jQuery Validate, чтобы игнорировать выбранные элементы в скрытых панелях, как вы правильно указали. – Lorenzo