Usando jQuery, estoy tratando de cambiar la opción seleccionada en un elemento SELECT para que coincida con otro valor de entrada:Safari no actualizará prestación de SELECT cuando se cambia la opción seleccionada a través de jQuery
$('#mySelect')
.find('option')
.filter(function() {
return this.text == $('#selectedRejectReason').val();
}).attr('selected', true)
Cuando la página se representa , y esto JS carreras, puedo ver que la actualización del DOM muy bien en inspector de la web de Safari:
<select>
<option value="label">Select Reason</option>
<option value="Wrong Amount" selected="true">Wrong Amount</option>
<option value="Wrong Time">Wrong Time</option>
<option value="Wrong Place">Wrong Place</option>
</select>
Cuando se carga la página, por defecto, ninguna de las opciones tienen un atributo seleccionado ... por lo que el primer elemento está mostrando. Los incendios de jQuery, el DOM se actualiza, por lo que se ve como lo hace arriba, pero en Safari, todavía muestra 'SELECCIONAR RAZÓN' en la página. Esto funciona bien en Firefox.
¿Alguna idea de por qué? Parece un error de Safari. Por desgracia, está rompiendo nuestro sitio en un iPhone.
Al hacer algunas búsquedas, algunas personas parecen solucionar esto al actualizar de jQuery 1.6 a 1.7. Por desgracia, no tengo ese lujo en este momento. Pero si esa es la solución, ¿alguien sabe qué cambió que soluciona esto?
que puedes usar '.prop' en lugar de' .attr' si está utilizando jQuery 1.6 o superior. –
@Joseph por favor haz una respuesta para que pueda darte crédito! No tengo idea de por qué eso lo arregla, pero lo hace. Al observar el DOM, el marcado es el mismo, pero con PROP actualiza al menos la imagen. –