2012-08-09 255 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 ...