2011-09-19 18 views
7

Tengo un cuadro de selección con 10 opciones. Cada vez que selecciona una opción, establece en la ubicación local el valor que seleccionó con id "select1".Agregue el atributo "seleccionado" con el valor de la opción

Por ejemplo: si selecciona la primera opción que obtiene en el almacén local: Clave: cliente de correo electrónico - Valor: opción1.

Ahora, Iom intenta hacer que el valor del almacenamiento local, el atributo seleccionado en el formulario de selección.

Esto es lo que he intentado, pero no parece funcionar:

if (localStorage.getItem("Select1") == "Option1"){ 
    $('#selectbox').val("Option1").attr("selected"); 
} 

Lo que estoy haciendo mal?

EDIT:

Este es mi código:

<select id="selectbox" > 
         <option>Default</option> 
         <option>Option 1</option> 
         <option>Option 3</option> 
         <option>Option 3</option> 
         <option>Option 4</option> 
         <option>Option 5</option> 
         <option>Option 6</option> 
     </select> 

Gracias

Respuesta

18

Esto funciona:

var optionValue = localStorage.getItem("Select1") 
$("#selectbox").val(optionValue) 
.find("option[value=" + optionValue +"]").attr('selected', true); 
+1

Amigo, me salvas (y). – NullPointer

0

En un examen más, parece como si querías algo característica más plenamente link

search = "Option 5"; 
$('#selectbox option:contains('+search+')').prop('selected',true); 
+0

No es lógico trabajar y no lo hace. ¿Está configurando la opción de selección de casilla de selección de qué? – jQuerybeast

+0

Actualizado con el código Estoy usando – jQuerybeast

+0

@Korvin ni siquiera necesita navegar a la opción seleccionada. solo llama .val() en la selección para el mismo resultado. –

0

Try esto:

if (localStorage.getItem("Select1") == "Option1"){ 
    $('#selectbox option:contains(Option1)').prop('selected',true); // jquery 1.6+ 
} 

si está utilizando una versión de jQuery mayor que 1.6, reemplace con .prop.attr

Editar: la versión más dinámica

if (localStorage.getItem("Select1")) { 
    $('#selectbox option:contains(' + localStorage.getItem("Select1") + ')').prop('selected',true); 
} 
+0

Ahí está y no funciona. http://jsfiddle.net/uY7ck/ – jQuerybeast

+0

me funciona, http://jsfiddle.net/uY7ck/2/ verifica tu id. estabas seleccionando un select con una identificación de cliente de correo electrónico cuando la única selección en el violín tenía una identificación de selectbox –

+0

fiddle actualizado http://jsfiddle.net/uY7ck/3/ –

1

Creo que podría estar buscando algo como esto. http://jsfiddle.net/tnPU8/3/

Pasa por las opciones del cuadro de selección y compara sus valores con los valores de b. Si son iguales, se cambia el índice del cuadro de selección para que se muestre la opción que contiene el valor b.

var b; //set equal to what you want to compare 
$('#selectbox').find('option').each(function(i,e){ 
    console.log($(e).val()); 
    if($(e).val() == b){ 
     $('#selectbox').prop('selectedIndex',i); 
    } 
}); 

Editar: Usando localStoragehttp://jsfiddle.net/tnPU8/7/

+0

No funciona Si estoy tratando de recuperar de la almacenamiento local. Aquí hay un ejemplo: http://jsfiddle.net/uY7ck – jQuerybeast

+0

@jQuerybeast Claro que sí, actualicé mi respuesta. – Jack

+0

Gracias señor. Encontré mi camino a trabajar mejor debido a menos código. A su manera, tendré que escribir la declaración If tantas opciones tengo. A mi manera, es solo 3 líneas de código. Muchas gracias aunque – jQuerybeast

0

Esto es todo lo que necesitará:

$("#selectbox").val(localStorage.getItem("selectbox")); 

He actualizado un violín anterior para un ejemplo: http://jsfiddle.net/uY7ck/1/

EDIT: En el código que publicó originalmente, suponiendo que está configurando localStorage con t En la misma casilla de selección, estaría comparando "Opción 1" (sin espacio) con "Opción 1" (espacio). Esa comparación nunca funcionará, por lo que la opción nunca se seleccionará.

+0

En su edición: Es cierto. Descubrí que es un problema, pero de todos modos, todas mis opciones no tienen espacios. Encontré mi camino a trabajar mucho mejor ya que no necesito escribir la declaración If tantas veces como mis opciones, en lugar de solo el código de 3 líneas. Muchas gracias aunque – jQuerybeast

Cuestiones relacionadas