2011-10-14 44 views
0

如何檢測在h:selectOneRadio中使用javascript或jquery中單擊了哪個單選按鈕?如何檢測在h:selectOneRadio中使用javascript或rich:jQuery?單擊哪個單選按鈕?

我已經可以使用valueChangeListener和a4j:託管bean的支持。 我想要的不是去服務器,只是使用jQuery的性能,因爲有時 它需要時間才能返回服務器響應。

我想要的是當一個單選按鈕被點擊時,它將禁用我的一些組件。

這是代碼。

<h:selectOneRadio id="isPrivate" valueChangeListener="#{someBean.changeRadio}"> 
        <a4j:support event="onchange" reRender="sp" />    
        <f:selectItem id="isPrivate0" itemLabel="No" itemValue="false"/> 
        <f:selectItem id="isPrivate1" itemLabel="Yes" itemValue="true"/>   
       </h:selectOneRadio> 

謝謝先進。 :)

+1

「*我要的是被點擊一個單選按鈕時,它會關閉我的一些組件*」 - 我希望你很清楚,既然你只想在客戶端(而不是服務器端(JSF))禁用它們,黑客仍然可以通過篡改請求來輕鬆地向這些組件提交值。 – BalusC

+0

感謝您的回覆。我想我會堅持我目前的實施。 ^^, –

回答

2

它最好將更改事件附加到文檔的onload列表中的每個單選按鈕。

$(function() 
{ 
    $('table[id$="isPrivate"] input:radio',this).each(function(){ 
       $(this).change(function (event) { 

       //do disabling here 
       //$(this).val() - will return the value of radiobutton 
       }); 
    }); 
}); 
+0

感謝您的回覆。我會試試這個.. ^^, –

0

你必須找到<input type='radio' …/>元素JSF生成,以及使用,比如聽變化事件,jQuery的.change()

+0

謝謝你的回覆。我會試試這個.. ^^, –

1

使用jQuery:

jQuery('input[name=isPrivate]:checked').val() 

例如:

if (jQuery('input[name=isPrivate]:checked').val() == "true") { 
    //yes 
} 
+0

謝謝。這是有幫助的。:) –

相關問題