2012-10-08 18 views
14
<!DOCTYPE html> 
<html> 
<script> 
function getValue() 
{ 
  var x=document.getElementById("sel"); 
    for (var i = 0; i < x.options.length; i++) { 
    if(x.options[i].selected ==true){ 
      alert(x.options[i].selected); 
     } 
    } 
} 
</script> 
</head> 
<body> 
<select multiple="multiple" id="sel"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="opel">Opel</option> 
    <option value="audi">Audi</option> 
</select> 
<input type="button" value="Get Value" onclick="getValue()"/> 
</body> 
</html> 

Este es mi código. ¿Cómo obtengo todos los valores seleccionados de listbox usando javascript? El código anterior muestra show verdadero para todos los valores seleccionados.cómo obtener múltiples valores seleccionados y elementos de listbox usando javascript

Respuesta

17

Sustituir

if(x.options[i].selected ==true){ 
     alert(x.options[i].selected); 
    } 

con

if(x.options[i].selected){ 
     alert(x.options[i].value); 
    } 
+0

Su trabajo gracias :) –

+0

Es inútil usar 'si (x.options [i] = .selected = true) 'en lugar de' if (x.options [i] .selected) ', pero podría tener sentido' if (x.options [i] .selected === true) 'o' if (!! x. opciones [i] .selected) ' – Oriol

6

le sugiero que lo haga usando jQuery así:

var selected = $('#sel option:selected'); 

Si prefiere no utilizar jQuery entonces caso omiso de esta respuesta y referirse a los otros.

+6

Pregunta pregunta por una solución de JavaScript y no es etiquetado * jQuery * – Phil

+1

@Phil Simplemente haciendo una sugerencia, el usuario puede ignorarla si no usa jQuery, pero también puede presentarle el fácil acceso DOM que puede considerar. –

+5

de http://api.jquery.com/selected-selector/: "* Debido a que': selected' es una extensión jQuery y no parte de la especificación CSS, las consultas que usan ': selected' no pueden aprovechar el aumento de rendimiento proporcionado mediante el método nativo DOM 'querySelectorAll()'. Para lograr el mejor rendimiento al usar ': selected' para seleccionar elementos, primero seleccione los elementos usando un selector de CSS puro, luego use' .filter (": selected") '*" . Por lo tanto 'var selected = $ ('# sel option'). Filter (': selected');' es mejor. – Oriol

1

solución con semejante ejemplo

<!DOCTYPE html> 
<html> 
<script> 
function getValue() 
{ 
    var x=document.getElementById("sel"); 
    for (var i = 0; i < x.options.length; i++) { 
    if(x.options[i].selected ==true){ 
      alert(x.options[i].value); 
     } 
    } 
} 
</script> 
</head> 
<body> 
<select multiple="multiple" id="sel"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="opel">Opel</option> 
    <option value="audi">Audi</option> 
</select> 
<input type="button" value="Get Value" onclick="getValue()"/> 
</body> 
</html> 
0

uso selectedOptions

for (var i = 0; i < x.selectedOptions.length; i++) { 
    alert(x.selectedOptions[i].value); 
} 
Cuestiones relacionadas