2012-07-03 15 views
5

hola He intentado con muchas opciones para verificar si el atributo múltiple está establecido en mi cuadro de selección pero ninguno ha funcionado. Estoy tratando de determinar si el cuadro de selección actual que estoy obteniendo los valores de una selección múltiple hasta el momento esto es lo que he intentado:cómo puedo verificar si mi elemento <select> contiene el atributo múltiple

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

también

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

también

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

Comprobar esta respuesta http://stackoverflow.com/questions/1318076/jquery-hasattr-checking-to-see-if-there-is-an-attribute-on-an-element – Chandu

+0

intentó eso y no funciona salteados a mi "afirmación else" – arrowill12

+0

Han publicado una respuesta ... Compruébalo ... – Chandu

Respuesta

8

eliminar : al principio de:

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

demostración: http://jsfiddle.net/D5JX5/

+0

que funcionó, pero funcionó para todas las casillas de selección, no solo para las que tienen el atributo múltiple en ellas – arrowill12

+0

@ arrowill12 ¿Puedes proporcionar tu código HTML – mgraph

+0

html? en edición – arrowill12

1

Todas las opciones excepto ":select[multiple]" (SHD ser "select[multiple]") se trató debería funcionar.

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

Sin embargo se echa en falta un Paran cierre para su sentencia if.

cambiar el código para:

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

o

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

o

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

Otra alternativa:

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

Parece que necesita para alerta sólo si múltiple se establece con un valor, no sólo si es que existe como un atributo:

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

también sencilla comprobación 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'); 
} 

y jQuery equivalente:

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

+1 para hacer con Javascript – Gurnard

Cuestiones relacionadas