2013-11-26 3 views
1

Имя свойства моего свойства выбора заполняется динамически.Как получить выбранный массив пустым

На представить свою форму, мне нужно знать, если все мои forams выбирает наполняться ...

Как я могу это сделать?

Я также хотел бы взять указатель мыши на выбранный, который не был заполнен.

<script type="text/javascript" src="js/jquery-1.6.4.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#teste").click(function() { 


       a = $("select[name='sel[]'] option:selected").length; 

       alert(a); 

      }); 
     }); 
    </script> 
<title> 
</title> 
</head> 

    <form> 
     <select name="sel[0]"> 
      <option value="teste"></option> 
      <option value="teste">1234</option> 
      <option value="teste">1234</option> 
      <option value="teste">1234</option> 
     </select> 
     <br /> 
     <br /> 
     <br /> 
     <select name="sel[1]"> 
      <option value="teste"></option> 
      <option value="teste">1234</option> 
      <option value="teste">1234</option> 
      <option value="teste">1234</option> 
     </select> 

     ... Many others 
     <input type="button" id="teste" value="TESTAR"> 
    </form> 

</html> 
+0

Все варианты имеют одинаковое значение? – PSL

+0

@PSL, №. Мои параметры не имеют одинаковых значений. – Pedro

ответ

1

Вы должны установить переменную как это var a;.

Там нет элемента с select[name='sel[]'], у вас есть несколько внутри него, вы можете использовать name*= или name^= сказать имя contains или имя starts withsel соответственно

JSFIDDLE DEMO

$("#teste").click(function() { 
    var a = $("select[name^='sel'] option:selected"); 
    var count = 0; 
    $.each(a, function() { 
     if ($(this).text().length) { 
      count++; 
     } 
    }); 
    alert(count); 
}); 
+1

имя^= 'sel' будет быстрее;) –

+0

Нет ... Это не работает для меня:/ – Pedro

+0

@DmitrySeleznev - абсолютно. Благодарю. – Krishna

0

При подаче формы выберите такие действия, как обычный ввод. Таким образом, вы можете найти варианты с пустым значением:

$("select[value=]").first().focus() 

Или повторите все элементы формы, проверяя ее значение и тип.

0

http://jsbin.com/UduNaGOh/1/edit?html,output

$(document).ready(function() { 
    $("#teste").click(function() { 
     var test = true;  
     $("#myform select").each(function(){ 
     var select = $(this); 
     if(select.val() == 'none') { 
      select.addClass('fail'); 
      select.focus(); 
      test = false; 
     } else { 
      select.removeClass('fail'); 
     } 
     }); 
     if(test){ 
     alert('well done'); 
     $("#myform select").removeClass('fail'); 
     // do your send stuff ... 
     } 
    }); 
    }); 

Я изменяю класс для стилизации пустые выбирает. Так вот CSS:

#myform > select.fail { background: red } 

Если вам просто нужно количество пустого выбираете вы можете использовать:

$('select:has(option[value="none"]:selected)').length 
1

Дайте опцию по умолчанию значения -1 и обеспечить общее имя класса эти параметры (что эффективно, что атрибут начинается с селектора).

Try:

HTML:

<form> 
    <select name="sel[0]" class="sel"> 
     <option value="-1"></option> 
     <option value="teste">1234</option> 
     <option value="teste">1234</option> 
     <option value="teste">1234</option> 
    </select> 
    <br /> 
    <br /> 
    <br /> 
    <select name="sel[1]" class="sel"> 
     <option value="-1"></option> 
     <option value="teste">1234</option> 
     <option value="teste">1234</option> 
     <option value="teste">1234</option> 
    </select> 
    <input type="button" id="teste" value="TESTAR"> 

JS:

$(document).ready(function() { 
     $("#teste").click(function() { 
      $(".sel").each(function() { 
       if (this.value == -1) { //If you are not providing value check for this.selectedIndex == 0 
        $(this).focus(); //set the focus 
        return false; //and break out of the loop 
      } 
      }); 
     }); 
    }); 

Fiddle

+0

Привет, я пытался точно такое же решение, но почему-то '.focus(). select()' похоже, не работает. можешь мне сказать почему?http://jsfiddle.net/ep98U/1/ – VenomVendor

+1

@VenomVendor Неправильное условие if. http://jsfiddle.net/8ecS2/ – PSL

+0

Извините за путаницу, это то, над чем я на самом деле работал. На этот раз внутри цикла, но элемент не фокусируется, но ваша демонстрация отлично работает, http://jsfiddle.net/ep98U/7/ – VenomVendor

Смежные вопросы