2011-07-29 18 views
6

Tengo una pregunta fácil para usted hoy. Tengo un cuadro de selección que permite al usuario seleccionar varios elementos. Además, cuando el usuario regrese a la página, puede ver qué elementos seleccionó y deseleccionarlos si es necesario. El problema es que cuando trato de deseleccionar, la selección se vuelve gris; NO anula la selección.¿Cómo deseleccionar un elemento en un cuadro de selección?

<select name="MySelect" multiple> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3" selected="selected">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
</select> 

Por lo tanto, cuando el elemento anterior hace a la página, no tengo manera de desmarcar la opción. El valor TODAVÍA se pasa al formulario.

¿Algún ayuda?

+0

¿Está utilizando jQuery una opción para usted? – Ryan

+0

Sí, pero no. No quiero usar jQuery aquí en esta página. –

+0

no estoy seguro de cuál es el problema, pero ¿su selección no debe tener múltiple = "múltiple"? Esto puede o no estar contribuyendo al problema, solo se lo enseñó a identificarlo. ¿tienes una muestra donde podamos ver el problema? – Dave

Respuesta

25

Puede anular la selección de opciones en una lista de selección de múltiples valores haciendo clic en ella.

+0

Me siento tonto después de leer esto ... Gracias. Por cierto, para cualquiera que lo busque también. Puede eliminar prop 'selected' usando jQuery (si necesita que sea una acción externa) –

+3

⌘-Click también funciona. – Daniel

+0

Ctrl + ⌘-Click en Windows dentro de una Mac VM;) –

0

Puede usar el objeto JS para memorizar el estado de una fila y hacer clic en la acción al seleccionar (JQuery).

$('#yourselect').click(function(e){   
     var i = this.selectedIndex; 
     if(this.options[i].selectedOld==true){ 
      this.options[i].selected = false; 
      this.options[i].selectedOld = false; 
     } 
     else{ 
      this.options[i].selectedOld = true; 
     } 
    }); 
Cuestiones relacionadas