jquery
  • select
  • internet-explorer-9
  • default-value
  • 2011-06-13 9 views 9 likes 
    9

    Tengo el siguiente cuadro de selección.¿Cómo establecer el valor predeterminado de un cuadro de selección usando JQuery en IE9?

    <select id="selId"> 
        <option id='1' value='1'>1</option> 
        <option id='2' value='2'>2</option> 
        <option id='3' value='3'>3</option> 
        <option id='4' value='4'>4</option> 
        <option id='5' value='5'>5</option> 
    </select> 
    

    En jQuery que estoy haciendo lo siguiente para seleccionar el valor 2 en el cuadro de selección .:

    ... 
    $("select#selId").find("option#2").attr("selected", "selected"); 
    ... 
    

    El mismo código establece el valor de 2 en el cuadro de selección en IE8 y Firefox. Pero no funciona en IE9.

    estoy usando jQuery 1.6.1 versión

    +0

    ¿Qué versión de jQuery está usando? v1.5.1 fue la primera versión en [admitir IE9] (http://blogs.msdn.com/b/ie/archive/2011/03/02/jquery-1-5-1-supports-ie9.aspx) como un navegador de nivel superior. – andyb

    Respuesta

    19

    En lugar de establecer el atributo selected, sólo tiene que utilizar .val ("2").

    Ver aquí: jsFiddle

    +0

    Eliminar '' de $ ('documento') – Haradzieniec

    +0

    @Haradzieniec No. – DavidGouge

    +3

    Nope significa no? Por qué no? $ (document) .ready (function() {}); pero no $ ('documento'). listo (función() {}); y su jsfiddle no funciona debido a eso al menos cuando hago clic en el enlace. Una vez que elimino '', carga bien. – Haradzieniec

    2

    usted podría utilizar val() para establecer la opción en su lugar - ver Change the selected value of a drop-down list with jQuery

    5

    De todos modos, esto funcionó bien en IE9 si desea MANTENER el atributo "SELECTED"

    $("select#selId").find("option#2").attr("selected", true); 
    

    http://jsfiddle.net/cqENs/

    +1

    +1 buena respuesta. Un enfoque mucho más agradable para mantener realmente el atributo. De hecho, pensé que val() lo haría detrás de escena, ¡pero no es así! – andyb

    1

    cambio éste

    $("select#selId").find("option#2").attr("selected", "selected"); 
    

    en éste

    $("select#selId").find("option#2").attr("selected", true); 
    
    Cuestiones relacionadas