2012-05-08 16 views
29

tengoCómo restablecer un elemento de selección con jQuery

<select id="baba"> 
<option>select something</option> 
<option value="1">something 1</option> 
<option value=2">something 2</option> 
</select> 

Usando jQuery, ¿cuál sería la forma más fácil (menos de escribir) para restablecer el select modo se selecciona la primera opción?

+1

hacer cuando se quiere este reinicio sucederá? si está en la carga de la página, simplemente agregue el atributo seleccionado a esa opción. –

+0

@Vega no es relevante para la pregunta cuando quiero que esto suceda. Está enganchado a un evento desencadenado por una acción del usuario. –

Respuesta

67

probar esto. Esto funcionará $('#baba').prop('selectedIndex',0);

Marque aquí http://jsfiddle.net/bibin_v/R4s3U/

+0

Si lo entendí correctamente, entonces él quiere seleccionar '' –

2
$('#baba option:first').attr('selected',true); 
11

En su caso (y en la mayoría de los casos de uso que he visto), todo lo que necesita es:

$("#baba").val(""); 

Demo.

+4

si el elemento seleccionado no tiene una opción con 'value =" "' entonces se creará uno en las versiones más recientes de jquery – billynoah

0

Esto hace el truco, y funciona para cualquier selección.

$('#baba').val($(this).find('option:first').val()); 
0

creo:

$("select option:first-child").attr("selected", "selected"); 
4

Editar: manera antigua,

document.getElementById('baba').selectedIndex = 0; 

Trate a continuación y que debería funcionar para su caso,

$('#baba option:first').prop('selected', true); 

DEMO

0
$('#baba').prop('selectedIndex',-1); 
0

Restablecer el campo de selección individual a la opción predeterminada.

<select id="name"> 
    <option>select something</option> 
    <option value="1" >something 1</option> 
    <option value="2" selected="selected" >Default option</option> 
</select> 
<script> 
    $('name').val($('name').find("option[selected]").val()); 
</script> 


O si lo desea restablecer todos los campos del formulario a la opción por defecto:

<script> 
    $('select').each(function() { 
     $(this).val($(this).find("option[selected]").val()); 
    }); 
</script> 
0

La mejor javascript solución que he encontrado es esta

elm.options[0].selected="selected"; 
+0

Esto no proporciona un Respuesta a la pregunta. Una vez que tenga suficiente [reputación] (https://stackoverflow.com/help/whats-reputation) podrá [comentar cualquier publicación] (https://stackoverflow.com/help/privileges/comment); en su lugar, [brinde respuestas que no requieran aclaración del autor de la pregunta] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-instead).- [De la opinión] (/ reseña/mensajes de baja calidad/18148199) – Mamun

Cuestiones relacionadas