Я хочу отобразить 3 выбранных входа для вариантов продукта и 3 предупреждающих сообщения, которые соответствуют их соответствующему вводу выбора. Когда пользователь выбирает любой параметр, кроме первого «фиктивного» параметра, предупреждающее сообщение должно исчезнуть. Я добился этого, но я считаю, что это не лучший способ написать JS, поскольку он в основном дублируется 3 раза. Это могло быть зациклено или что-то?
Я много и много гуглял, но не могу найти простого решения.
HTML:
<select id="select-1">
<option value="">Select an option</option>
<option value="1">option 1</option>
<option value="2">option 2</option>
<option value="3">option 3</option>
</select>
<select id="select-2">
<option value="">Select an option</option>
<option value="1">option 1</option>
<option value="2">option 2</option>
<option value="3">option 3</option>
</select>
<select id="select-3">
<option value="">Select an option</option>
<option value="1">option 1</option>
<option value="2">option 2</option>
<option value="3">option 3</option>
</select>
<div>
<p class="option-1">Choose an option 1</p>
<p class="option-2">Choose an option 2</p>
<p class="option-3">Choose an option 3</p>
</div>
Вот этот JS
$( window ).load(function() {
if($('#SingleOptionSelector-0 option').length === 1) {
$(".option-1").hide();
}
if($('#SingleOptionSelector-1 option').length === 1) {
$(".option-2").hide();
}
if($('#SingleOptionSelector-2 option').length === 1) {
$(".option-3").hide();
}
});
$('#SingleOptionSelector-0').on('change', function () {
if($(this).val()===""){
$(".option-1").show();
}
else if($(this).val()!==""){
$(".option-1").hide();
}
});
$('#SingleOptionSelector-1').on('change', function () {
if($(this).val()===""){
$(".option-2").show();
}
else {
$(".option-2").hide();
}
});
$('#SingleOptionSelector-2').on('change', function () {
if($(this).val()===""){
$(".option-3").show();
}
else {
$(".option-3").hide();
}
});
Вот рабочий пример для codepen: https://codepen.io/anon/pen/JVJXmw
Это работает, но я хотел бы показывать только сообщения при загрузке, если в поле выбора есть несколько опций, поэтому я предполагаю скрыть / показать.
Я бы хотел написать js лучше, но не повезло