2011-02-28 44 views
7

我想手动设置一个单选按钮来检查,但有一个问题。该代码工作得很好:jQuery手动设置buttonset收音机

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

但是,当我把jQuery UI的实践,并使无线电按钮集,一切都打破。再次,一切正常,直到我把.buttonset(),然后他们看起来比正常收音机好多了,但上面的设置根本不起作用。

重点如下:
任何人都已能够手动设置的单选按钮而.buttonset()是活性的那些无线电?

+0

第一关:在'checked'属性是一个布尔值,它是由存在或不存在而设定的。它不需要属性。尝试使用:'attr('checked',true)'代替。它可能会有所作为。 – 2011-02-28 18:05:54

+0

这不是问题,当jQuery UI未被使用时,它可以正常工作。 – Yottagray 2011-02-28 18:20:08

+1

你可能想考虑发布一个[JS小提琴](http://jsfiddle.net/)演示,它重现你的问题;这样我们就可以看到与什么相互作用。 – 2011-02-28 18:26:07

回答

21

您只需在设置“checked”属性后调用按钮小部件上的“刷新”操作即可。

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

这里是jsfiddle

注意,设置“选中”属性可以(并且,有些人会说,应该)与.prop()功能进行设置:

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

Yottagray将您的答案标记为已接受,您的回答是正确的我将删除我的答案。 – 2011-02-28 18:54:35

+0

那么你的解决方法不是*不好*,真的;这是一个好主意,只是没有必要:-) – Pointy 2011-02-28 19:00:52

+0

或产生预期的效果,最近一直痴迷于SO,并且有时已经领先于我自己:-) – 2011-02-28 19:04:28