2011-01-20 21 views
23

Creo que esto debería ser bastante fácil, pero tiene problemas un poco ... Tengo un elemento de entrada SELECT que permite al usuario seleccionar varios elementos. Me gustaría proporcionar un mecanismo para que eliminen todos los elementos seleccionados, probablemente solo sea una etiqueta SPAN o algo similar.¿Cómo borrar todos los elementos seleccionados en una entrada SELECT usando jQuery?

De todos modos ... usando jQuery, cómo borraría la selección en el elemento de entrada SELECT para que no se seleccionen elementos.

Respuesta

65

En el caso de un <select multiple> la función .val() toma/devuelve una matriz, por lo que simplemente puede pasar en un vacío matriz para borrar la selección, como esta:

$("#selectID").val([]); 

You can test it out here.

+0

Buena idea, gracias por compartir. – Darmen

+0

¡Impresionante! ¡Gracias! – mattruma

+1

No funciona. En esa jsfidle también –

2

intento algo así como

$("#my-Select").find('option').attr("selected","") ; 
0

Prueba este

<select id='select1' ></select> 
<input type= 'button' value = 'Clear Selection' id = 'remove' /> 

$(document).ready(function() { 
    $('#remove').click(function() { 
    return $('#select1 option:selected').remove(); 
    }); 
}); 
+3

¿No eliminaría esto todos los elementos seleccionados en lugar de borrar la selección? – Tom

0
Maybe 

$('#mySelect option').each(function(i, e) 
{ 
    e.selected = false 
}); 
3

Probar:

$("select option:selected").each(function() { 
    $(this).remove(); //or whatever else 
}); 
4

Esto funcionó para borrar todas las opciones seleccionadas para mí ..

$ ("# selectListName") prop ('selectedIndex', -1)

.

La lista de selección se parecía a

<select multiple='multiple' id='selectListName'> 
<option>1</option> 
<option>2</option> 
<option>3</option> 
<option>4</option> 
</select> 
+1

use el número de índice que opción quiere seleccionar. En mi caso, la primera opción fue "Por favor, elija", así que usé $ ("# selectListName"). Prop ('selectedIndex', 0) en mi caso. –

2

Sólo esto funcionó para mí: -

$("#selectid").find('option').attr("selected",false) ; 
0

mejor que esto, puede utilizar:

$("#selectID").empty(); 

que funciona en casi cualquier cosa en el DOM.

Cuestiones relacionadas