2012-01-25 22 views
3

ここにはチェックされたチェックボックスの数え方の例がたくさんありますが、何らかの理由でこの作業を行うことができません。Primefaces RadioCheckboxがチェックされているかどうかを確認する方法はありますか?

私がやっていることは、ページの少なくとも1つのチェックボックスがオンになっていると、チェックボックスが選択されていない場合にボタンを有効または無効にする必要があるということです。

私が次のコードを実装しても、チェックされたチェックボックスの数は常に0です。私は何が欠けているのか分かりません。

Primefacesコンポーネント:

<p:column id="idSelectBox" selectionMode="multiple" style="width:68px" /> 

のjQueryコード:

function countChecked() { 
    var n = $("input:checkbox:checked").length; 
    alert('Count: ' + n); 
} 

$(":checkbox").click(countChecked); 

は、あなたが私を助けることを願って!

UPDATE 1:

私は少しより多くの研究を行なったし、Primefacesコンポーネントは、HTMLのチェックボックス要素にレンダリングされません、その出力のdivとクラスのセットです:

<td class="ui-selection-column"> 
<div class="ui-dt-c"> 
    <div class="ui-radiobutton ui-widget"> 
    <div class="ui-radiobutton-box ui-widget ui-corner-all ui-radiobutton-relative ui-state-default"> 
    <span class="ui-radiobutton-icon"></span> 
    </div> 
    </div> 
</div> 
</td> 

だから私チェックボックスがチェックされているかどうかを私がどのように検出できるか把握しようとしています。あなたは属性セレクタを使用する必要が

+0

」タグはどのHTMLに出力されますか? –

+0

@RoryMcCrossan 私の質問への更新を確認してください。 :) –

+0

タイトルに質問を記入してください。 –

答えて

3

PrimeFaces 3.1のDataTableクライアント側のAPIを使用すると、任意の選択した行があるかどうかを確認するために使用することができますgetSelectedRowsCount()メソッドを持っている参照してください。

+0

こんにちは、PrimeFacesサイトに行き、** primefaces-3.1-SNAPSHOT.jar **をダウンロードしましたが、このメソッドを呼び出す方法に関するドキュメントは見つかりませんでした。JSスクリプトで呼び出すだけで検証。正しい方向に私を向けることができますか?ありがとう、男! –

+0

私はdataTableがwidgetVarの名前である次のコードを試しています: 'function countCheckboxMarked(dataTable){var count = dataTable.getSelectedRowsCount;警告(数); } '..警告出力は次のようになります。' function(){return this.isSelectionEnabled()?this.selection.length:0} '..関数本体を表示していると思います。私は何が欠けていますか? –

+0

**更新:**私の呼び出しでコンストラクタの不足を完全に逃した、それは必要: 'dataTable.getSelectedRowsCount();' ..私はなぜそれを見落としたのか分かりません。ありがとう! –

-1

http://api.jquery.com/category/selectors/attribute-selectors/

var n = $("input[type=checkbox][checked]").length; 
+1

PrimeFacesは列選択のためのチェックボックス要素を表示しないので、これは当てはまりません。チェックボックスのUIには2つのdivがあり、テーマに合わせて画像が表示されます。 –

関連する問題