2012-01-18 9 views
21

tengo botones de opción como esta:Obtener el botón de opción seleccionado en ese momento en un buttonset jquery ui sin unirse al hacer clic

<div id="radio"> 
    <input type="radio" id="radio1" name="radioOption" /><label for="radio1">Choice 1</label> 
    <input type="radio" id="radio2" name="radioOption" checked="checked" /><label for="radio2">Choice 2</label> 
    <input type="radio" id="radio3" name="radioOption" /><label for="radio3">Choice 3</label> 
</div> 

y aplicar el botón configurado de esta manera:

$(function() { 
    $("#radio").buttonset(); 
}); 

Necesito obtener el botón de opción seleccionado sin vincularlo al evento click.

+0

Usted puede encontrar este vínculo útil - http://stackoverflow.com/questions/8329579/jquery-check-current-state-of-radio-button-and-hide- div –

Respuesta

58

Maldita acabo de dar cuenta de mi selecter tenía un error tipográfico, pero si ayuda a alguien más:

Si no desea utilizar el evento clic, lo cual no se podía hacer lo siguiente: Si usted es buscando el elemento que sí uso:

$("#radio :radio:checked"); 

Si usted está buscando el identificador del elemento de uso:

$("#radio :radio:checked").attr('id'); 

Si se necesita saber lo que el texto del valor seleccionado, entonces esto debería funcionar:

$("#radio :radio:checked + label").text(); 
+1

Gracias por proporcionar una respuesta que realmente hace lo que desea, es decir, * obtiene * el valor de la radio en cualquier momento, en lugar de exigirle que almacene el valor en otro lugar cada vez que el usuario lo cambie. MANERA más elegante y sostenible. +1 – JMTyler

+0

Estoy usando un botón de encendido/apagado, por lo que configuro mis valores de radio como 'value = 'on'' y' value =' off''. Esto lo hace fácil y legible: '$ ('# radio: radio: checked'). Val() == 'on'' – JMTyler

8

probar este

$("input:radio[name=radioOption]").click(function(){ 
     var value = $(this).attr("id"); 
     alert(value); 
}) 

Example

3

mi punto de vista, no es tal acontecimiento para buttonset en jquery ui. Puede ver here.

tiene que escribir unen jQuery Manual, como a continuación:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#radio").buttonset(); 
     $("#radio input").bind("click",function(){ 
       // do whatever you want to do with clicked button 
    }); 
}); 
</script> 
1

Cuando hago clic en un botón que llamo una función, que toma los parámetros de la buttonset:

$("#button").click(function() 
{ 

var params = $("input[name=radio]:checked").val(); 
alert(params); 

}); 

En su caso si hacer esto, yo creo que debería funcionar:

var params = $("input[name=radioOption]:checked").val(); 
3

Basta con añadir el value en tributo a cada input de la siguiente manera:

<div id="radio">   
    <input type="radio" id="radio1" name="radioOption" checked="checked" value="first"/><label for="radio2">Choice 2</label> 
    <input type="radio" id="radio2" name="radioOption" value="second"/><label for="radio3">Choice 3</label> 
    <input type="radio" id="radio3" name="radioOption" value="third"/><label for="radio3">Choice 3</label> 
</div> 
Cuestiones relacionadas