Я пытаюсь убедиться, что пользователь входит в 1 из 2 полей: «ExactOrderSize» или «approxOrderSize».jQuery Validator, требуется любое поле
<p>Exact size of your order (# of items)</p>
<input id="ExactOrderSize" type="text" name="ExactOrderSize">
<p>Approximate size of your order</p>
<select id="approxOrderSize" name="approxOrderSize" >
<option value="" selected="selected"></option>
<option value="0">0-35</option>
<option value="35">35-50</option>
<option value="50">50-100</option>
</select>
Для этого я пользуюсь помощью jQuery Validator. Все работает с ним хорошо, за исключением этого специального правила валидации, которое, кажется, ничего не делает.
$('#quoteform').validate({
rules: {
FirstName: {
required: true
},
LastName: {
required: true
},
approxOrderSize: {
required: function() {
if($('#ExactOrderSize').val()=="")
return true;
else
return false;
}
},
DateNeededBy: {
required: true
}
}
});
Моя идея состояла в том, чтобы в основном запустить функцию, которая, если #ExactOrderSize
поле не заполняется, сделал #approxOrderSize
поле, необходимое. А.К.А. set required = true
Что мы обнаружили из ответов StackOverflow, так это то, что проблемы заключаются в том, что эти два поля потенциально скрыты. Когда страница сначала загружается ни #ExactOrderSize, ни #approxOrderSize изначально показаны.
Они должны нажать одну из этих двух кнопок, чтобы показать, что поле:
В зависимости от кнопки они выбирают, слайд-анимация показывает соответствующее поле.
"Да" -> Показывает поле #ExactOrderSize
"Нет" -> Показывает поле #approxOrderSize
Я, хотя это было бы хороший пользовательский интерфейс, но, по-видимому, он вызывает проблемы с сообщениями проверки, которые могут быть показаны, что делает работу JQuery Validation неработоспособной.
В качестве решения я попробовал:
$('#quoteform').submit(function() {
$('#not-exact').show();
$('#yes-exact').show();
});
Таким образом, все поля будут показывать после того как форма представляет .. но она по-прежнему не работает.
P.S. Фактическая страница - HERE, если вы хотите ее посмотреть.
@Michael Гамильтон спасибо за ваш вклад, я редактировал этот вопрос, чтобы отразить дальнейшее понимание этого вопроса. –