Dado lo siguiente:
<select id="location">
<option value="a" myTag="123">My option</option>
<option value="b" myTag="456">My other option</option>
</select>
<input type="hidden" id="setMyTag" />
<script>
$(function() {
$("#location").change(function(){
var element = $(this);
var myTag = element.attr("myTag");
$('#setMyTag').val(myTag);
});
});
</script>
Eso no funciona ...
¿Qué debo hacer para actualizar el valor del campo oculto al valor de myTag cuando se cambia la selección? ¿Asumo que necesito hacer algo para obtener el valor seleccionado actualmente ...?
Prueba esto:
fuente
Esto se debe a que el elemento es "Seleccionar" y no "Opción" en el que tiene la etiqueta personalizada.
Prueba esto:
$("#location option:selected").attr("myTag")
.Espero que esto ayude.
fuente
Prueba esto:
En la función de devolución de llamada para
change()
, sethis
refiere a la selección, no a la opción seleccionada.fuente
Supongamos que tiene muchas selecciones. Esto puede hacerlo:
fuente
Estás bastante cerca:
fuente
Sintaxis más simple si una forma.
var option = $('option:selected').attr('mytag')
... si hay más de una forma.
var option = $('select#myform option:selected').attr('mytag')
fuente
Aquí está el script completo con una llamada AJAX para apuntar a una sola lista dentro de una página con múltiples listas. Ninguna de las otras cosas anteriores funcionó para mí hasta que usé el atributo "id" a pesar de que mi nombre de atributo es "ItemKey". Al usar el depurador
Depuración de Chrome
Pude ver que la opción seleccionada tenía atributos: con un mapa para el "id" de JQuery y el valor.
Aquí está el archivo JSON para crear ...
Espero que esto ayude, gracias a todos por ayudarme a llegar tan lejos.
fuente
Prueba este ejemplo:
fuente
fuente
También puedes probar este también con
data-myTag
fuente
La más fácil
fuente