2010-08-13 10 views
15

¿Cómo verifico si la primera opción está seleccionada y luego ejecuto algún código?compruebe si la 1ª opción está seleccionada

Algo así como, si el cuadro de selección llamado "My_Saved_Shipping" tiene la primera opción seleccionada y luego ejecuta el código.

<select name="My_Saved_Shipping"> 
<option>Select/Enter Address</option> 
<option value="1">text</option> 
<option value="2">text2</option> 
</select> 

Respuesta

7
<script type="text/javascript"> 
    if($("select[name='My_Saved_Shipping']").selectedIndex == 0) 
    { 
     //This is where your code goes 
     alert('First Element is selected'); 
    } 
</script> 

Si desea probar para el texto dentro de la option, utilice:

<script type="text/javascript"> 
    if($("select[name='My_Saved_Shipping']").text == 'Select/Enter Address') 
    { 
     //This is where your code goes 
     alert('First Element is selected'); 
    } 
</script> 
+0

¿Cómo funciona esta construcción? Does not $ ("select [name = 'My_Saved_Shipping']") devuelve una colección JQuery? No hay una propiedad SelectedIndex seleccionada ... Tuve que usar el método $ ("select [name = 'My_Saved_Shipping']") [0] para llegar al elemento DOM que tiene la propiedad selectedIndex. – gap

+7

agregue [0] a su respuesta, debería ser así: if ($ ("select [name = 'My_Saved_Shipping']") [0] .selectedIndex == 0) – evilReiko

2

Editar: Modificado de selección para trabajar fuera del nombre, también el código añadido a wireup al controlador de cambio para la selección, y se coloca en el manejador de listas.

$(function(){ 
     $("select[name='My_Saved_Shipping']").change(function() {    
      if (this.selectedIndex == 0){ 
       <!-- do stuff --> 
       } 
      }); 
}); 
+0

Una vez más No hay acceso para seleccionar marcado, por desgracia – user357034

+0

@ user357034 actualizado, también incluyó el jquery para conectarse al evento de cambio para la solución Favorable – heisenberg

+0

- detectar, sólido y simple. – tfont

19
if ($('select[name=My_Saved_Shipping]')[0].selectedIndex === 0) { 
    // do something 
} 

Sería mejor para dar el <select> un id (por lo general coincide con el name) - un selector #id es más rápido que un selector [attr=val].

+0

+1 Por no usar jQuery; p –

+0

En su ejemplo, es sin embargo la segunda opción (que tiene un índice de 1). Creo que es mejor reinterpretar la pregunta como "Ejecutar código cuando se selecciona la primera opción ** con un valor **";) – BalusC

+0

@BalusC, ¿cómo sabemos a qué '

0

Por qué no usar algo como:

<select name="My_Saved_Shipping"> 
    <option value="-1">Select/Enter Address</option> 
    <option value="1">text</option> 
    <option value="2">text2</option> 
</select> 

y prueba si el valor es negativo?

+0

Sin acceso para seleccionar el marcado, lamentablemente – user357034

15

Este es otro método:

$('.myselect').change(function() { 
    if ($(this).children('option:first-child').is(':selected')) { 
     //do something 
    } 
}); 
+1

la respuesta más estricta jQuery para mí – Macumbaomuerte

+0

Gracias la mejor respuesta – Picrasma

Cuestiones relacionadas