Правильный способ проверки ввода выбранного элемента

0

Каков правильный способ проверки правильности выбора опции в выпадающем меню? У меня есть некоторые элементы выбора (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;
    }
Теги:

4 ответа

-2
Лучший ответ

Он не работает, потому что у вас есть два элемента с id/name как a1_1, попробуйте a1_1 другой идентификатор для набора полей

  • 0
    Идентификаторы Fieldset снова уникальны
  • 0
    не думал об этом! спасибо .. как я мог ограничить это только для проверки видимых наборов полей? Я пытался что-то вроде if( $( "#fieldsetid:visible" )){ //javascript } но это не похоже на работу
0

В вашем случае я бы изменил это:

x = $('select[name="a1_1"]').val();//get the value in jquery

if(x!=1 || x!= 2 || !x)

Полезная ссылка

0

Используя jquery, вы можете попробовать что-то вроде ниже:

if ($("select[name=a1_1]").val().length <= 0)
{
    alert("Age must be selected");
    return false;
}

и использовать то же самое для других, это исправит вашу проблему.

0

Я бы сделал что-то вроде этого:

<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;
        }
    });
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню