2011-02-28 8 views
7

Estoy tratando de configurar manualmente un botón de radio para verificar, pero hay un problema. El código funciona bien:jQuery establece manualmente radios de botones

$('#'+align+'Text').attr("checked","checked"); 

Pero cuando pongo jQuery UI en práctica y hacer que los radios de una buttonset, todo se rompe. De nuevo, todo funciona bien hasta que coloque el botón .buttonset(), luego se ven mucho mejor que las radios normales, pero la configuración anterior no funciona en absoluto.

hincapié en los siguientes:
nadie ha sido capaz de establecer manualmente un botón de radio, mientras que .buttonset() es activa en esas radios?

+0

En primer lugar: la propiedad 'checked' es un valor booleano, se establece por estar presente o no presente. No requiere un atributo. Intenta usar: 'attr ('checked', true)' en su lugar. Podría hacer una diferencia. –

+0

Esto no es un problema, funciona bien de cualquier manera cuando no se usa jQuery UI. – Yottagray

+1

Es posible que desee considerar publicar una demo [JS Fiddle] (http://jsfiddle.net/) que reproduzca su problema; de esa manera podemos ver qué está interactuando con qué. –

Respuesta

21

Todo lo que necesita hacer es llamar a la operación "actualizar" en el widget de botón después de configurar el atributo "marcado".

$('#'+align+'Text').attr("checked","checked").button('refresh'); 

Aquí está el jsfiddle.

Tenga en cuenta que si establece la propiedad "marcada" puede (y, algunos dirían, debe ) puede ajustar en la función .prop():

$('#' + align + 'Text').prop('checked', true).button('refresh'); 
+0

Su respuesta es correcta una vez que Yottagray marque su respuesta como aceptada. Eliminaré la mía. –

+0

Bueno, su solución no era * mala *, realmente; es una buena idea que simplemente no es necesario :-) – Pointy

+0

O producir el efecto deseado, he estado obsesionado con SO últimamente y me he adelantado a veces :-) –

Cuestiones relacionadas