2012-01-25 2 views
3

체크 된 체크 박스를 계산하는 방법을 보여주는 예제가 많이 있지만 어떤 이유로이 작업을 수행 할 수 없다는 것을 알고 있습니다.Primefaces RadioCheckbox를 선택했는지 어떻게 확인할 수 있습니까?

내가하려는 것은 내 페이지의 적어도 하나의 체크 박스가 선택되었을 때 체크 박스가 선택되어 있지 않으면 버튼이 활성화 또는 비활성화되어야한다는 것입니다.

문제는 다음 코드를 구현 한 것입니다. 체크 된 체크 상자의 수는 항상 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에는 테마보기 용 이미지가있는 두 개의 div와 스팬이 있습니다. –

관련 문제