2012-08-09 72 views
2

我想通过Javascript来操纵primefaces单选按钮。操纵JavaScript中的Primefaces单选按钮

对于标准单选按钮,我可以简单地改变checked属性输入元件的:

jQuery(".myselector input")[0].checked = true 
jQuery(".myselector input")[0].checked = false 

在此之后,按钮返回到初始状态(没有项目被选择)。

使用primefaces单选按钮,更改checked属性似乎没有效果。 我可以通过相应的 标签上产生click事件选择特定单选按钮:

jQuery(".mygroup-selector label").get(0).click() 

不过,我正在寻找一种方式来恢复到初始状态,即,取消选择所有 项目。如何才能做到这一点?

+0

尝试......... $( '#myRadioButton')。获得(0).checked – rags 2012-08-09 08:42:19

+0

@rags:不起作用:单选按钮的jQuery对象没有'checked'属性。 – 2012-08-09 18:54:01

回答

0

尝试:

$(".myselector input").prop('checked', false); 
// Note that the pre-jQuery 1.6 idiom was 
// $(".myselector input").attr('checked', false); 
OR 
$(".myselector input").removeAttr("checked"); 
OR 
$(".myselector input").val(""); 
+0

我已经试过了。但是,用户界面不会被更新。 – 2012-08-10 07:02:35

0

要做到这一点,我发现是操纵底层checked属性 ,然后手动触发一个事件changed最好的方式。然后,事件处理程序将自动更新UI类:

$(".myselector input").prop("checked", false) 
$(".myselector input").change() 

然而,其他变化的事件处理程序将运行良好,这可能视情况而定的副作用。

显然,Primefaces(或任何JS组件,它使用)真的应该为此提供适当的客户端API ...