Si tengo 3 botones de radio, ¿hay alguna forma a través de jQuery de averiguar el valor del que se seleccionó antes de que el usuario haga clic en uno nuevo?
<div id="radio-group">
<input type="radio" id="radio-1" name="radios" value="1" checked="true" />
<input type="radio" id="radio-2" name="radios" value="2" />
<input type="radio" id="radio-3" name="radios" value="3" />
</div>
En el ejemplo anterior, si el usuario hace clic en radio-3
, necesito una forma de obtener 1
, para poder formatearlo. Gracias.
Solución del problema
"Ha pasado un tiempo" sería un eufemismo, pero en caso de que alguien se tropiece con este tema:
Adil me señaló en la dirección correcta, sin embargo, mouseup
solo funciona para eventos activados por el mouse (duh), así que probé con focus
y, dado que también sucede antes change
del evento, funciona con las entradas del mouse y del teclado (como cuando cambias las radios estado mediante el tabulador y las teclas de flecha ). Entonces, para obtener acceso al elemento previamente seleccionado/marcado antes de la interacción del usuario que usa focus
y para obtener el elemento actual, usa su buen viejo change
:
//html
<input type="radio" id="radio-1" name="radios" value="1" />
<input type="radio" id="radio-2" name="radios" value="2" />
//js
//if currently checked item is radio-1
$('[name=radios]').on('focus', function() {
console.log($('[name="radios"]:checked').val()); //outputs 1
});
$('[name=radios]').change(function() {
console.log($('[name="radios"]:checked').val()); //outputs 2
});
No hay comentarios.:
Publicar un comentario