Каков правильный способ проверки правильности выбора опции в выпадающем меню? У меня есть некоторые элементы выбора (fieldset), которые настроены для отображения ни одного и других, которые видны. Я хочу проверить только те, которые видны, иначе форма не будет отправлена.
Например:
<fieldset id="a1_1">
<select name="a1_1">
<option value="" selected="selected">Select Age</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</fieldset>
<fieldset id="a1_2" style=" display: none;">
<select name="a1_2">
<option value="" selected="selected">Select Age</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</fieldset>
<fieldset id="a2_1">
<select name="a2_1">
<option value="" selected="selected">Select Age</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</fieldset>
<fieldset id="a2_2" style=" display: none;">
<select name="a2_2">
<option value="" selected="selected">Select Age</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</fieldset>
Я пробовал что-то вроде этого без везения:
var x = document.forms["x"]["a1_1"].value;
if (x == null || x == "")
{
alert("Age must be selected");
return false;
}
Он не работает, потому что у вас есть два элемента с id/name как a1_1
, попробуйте a1_1
другой идентификатор для набора полей
В вашем случае я бы изменил это:
x = $('select[name="a1_1"]').val();//get the value in jquery
if(x!=1 || x!= 2 || !x)
Полезная ссылка
Используя jquery, вы можете попробовать что-то вроде ниже:
if ($("select[name=a1_1]").val().length <= 0)
{
alert("Age must be selected");
return false;
}
и использовать то же самое для других, это исправит вашу проблему.
Я бы сделал что-то вроде этого:
<fieldset id="a1_1">
<select name="a1_1" errorMessage="Age must be selected">
<option value="0" selected="selected">Select Age</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</fieldset>
//Catch submit form event
$('form').submit(function(){
//Go through all select elements of the form
$(this).find('select').each(function(){
//Validate the selected value
if($(this).val() === "0")
{
//Display the defined error message if needed
var msg = $(this).attr('errorMessage');
alert(msg);
//And return false to invalidate the form submission
return false;
}
});
});
if( $( "#fieldsetid:visible" )){ //javascript }
но это не похоже на работу