2012-07-03 5 views
5

hi Próbowałem wielu opcji, aby sprawdzić, czy atrybut wielokrotny jest ustawiony w moim polu wyboru, ale żaden nie zadziałał. Próbuję ustalić, czy obecny wybierz pole, które otrzymuję wartości od jest wielokrotnością wybierz tak daleko to, co próbowałem:Jak mogę sprawdzić, czy mój element <select> zawiera atrybut wielokrotny?

if($(":select[multiple]").length){ 
      alert("worked"); 
} 

również

if($("select").attr("multiple"){ 
      alert("worked"); 
} 

także

if($("select").attr("multiple") != 'undefined'{ 
      alert("worked"); 
} 

html:

<select multiple="multiple" style="height:50px" class="classname" name="multi_values[]"> 
<option value="blah">blah</option> 
<option value="blah">blah</option> 
<option value="blah">blah</option>    
</select> 
+0

Sprawdź tę odpowiedź http://stackoverflow.com/questions/1318076/jquery-hasattr-checking-to-see-if-there-is-an-attribute-on-an-element – Chandu

+0

próbował to i to nie działa przeskakuje do mojego "else statement" – arrowill12

+0

Po opublikowaniu odpowiedzi ... Sprawdź to .. – Chandu

Odpowiedz

8

usunąć : na początku:

if($("select[multiple]").length){ 
    alert("worked"); 
} 

Demo: http://jsfiddle.net/D5JX5/

+0

która działała, ale działała dla wszystkich wybranych skrzynek nie tylko tych o wielu atrybutach w nich – arrowill12

+0

@ Arrowill12 możesz podać swój kod HTML – mgraph

+0

html został dodany w edycji – arrowill12

1

Wszystkie opcje z wyjątkiem ":select[multiple]" (SHD być "select[multiple]") próbowałeś powinno działać.

JSFiddle: http://jsfiddle.net/VAXF6/2/

jednak brakuje do zamknięcia Paran dla if.

Zmień swój kod do:

if($("select[multiple]").length){ 
      alert("worked"); 
} 

lub

if($("select").attr("multiple")){ 
      alert("worked"); 
} 

lub

if($("select").attr("multiple") != 'undefined'){ 
      alert("worked"); 
} 

Inną alternatywą:

if($("select").is("[multiple]")){ 
      alert("worked"); 
} 
1

Wydaje trzeba tylko alert jeśli wielokrotność została ustalona o wartości, nie tylko jeśli istnieje jako atrybut:

if($("select[multiple='multiple']").length){ 
    alert("worked"); 
} 
2

także proste sprawdzenie javascript:

var c = document.getElementsByTagName('select'); //collection 
for (var i=0, l = c.length; i<l; i++) { 
    alert(typeof c[i].attributes['multiple'] == 'undefined' ? 'single':'multiple'); 
} 

i równoważne jQuery:

$('select').each(function(){ 
    alert(typeof this.attributes['multiple'] == 'undefined' ? 'single':'multiple'); 
}); 
+0

+1 za pracę z Javascriptem – Gurnard

Powiązane problemy