2011-01-30 8 views
5

¿Cómo puedo configurar el valor de un campo de selección de entrada para el valor de la primera opción que no está deshabilitadojQuery -. Establecer el valor de un selecto a una de sus opciones

para, por ejemplo, en este campo, el valor seleccionado es 1. ¿Cómo puedo cambiar este valor a la siguiente opción no desactivada, es decir. 2?

<select> 
    <option disabled="disabled" value="1">1</option 
    <option value="2">2</option 
    <option disabled="disabled" value="3">3</option 
    <option value="4">4</option 
</select> 

Respuesta

12

para su ejemplo dado, me gustaría utilizar:

$("select option:not([disabled])").first().attr("selected", "selected");

si su selecto tenían una identificación específica ("#foo" por ejemplo):

$("#foo option:not([disabled])").first().attr("selected", "selected");

+0

no funciona. el campo de selección todavía muestra la opción desactivada activa ... – Alex

+0

Edité el fragmento hace unos minutos de '.first' a' .first() '¿Estaba usando el código anterior? – Potch

+1

en su html, ¿las etiquetas 'option' realmente terminan con'') – Potch

1
$('#id-for-select option:not(:disabled):first').click() 
+0

no Habría una: en primer lugar al final del selector? –

+0

Je, sí. Mi edición para ese efecto se cruzó con su entrada de comentario. – chaos

+0

que tampoco funciona .... – Alex

0

establecer la propiedad seleccionada de la opción:

<option id="value2" value="2">2</option> 

document.getElementById('value2').selected = true; 
+0

Eso no es jQuery ... –

+2

Creo que el punto es que uno no sabe de antemano cuál es el primer valor habilitado ... –

1

Prueba esto:

$('#select-id-here option:enabled').first().attr('selected', 'selected'); 
3

Un poco más limpia que las otras soluciones:

$('#select_id').find('option:enabled:first').prop('selected',true); 
Cuestiones relacionadas