0
試圖創建一個複選框來檢查treenode中的所有項目。我對JSF很陌生,所以我非常難以理解如何在樹而不是表上實現它。這是當前的代碼:爲Richfaces選中全部框Treenode
<rich:panel style="width:400px;">
<h:selectBooleanCheckbox id="vehicleAll" onclick="selectAllModel(this.checked);">
</h:selectBooleanCheckbox>
<h:outputText value=" ALL"/>
<rich:tree id="vehicleTree" switchType="client"
value="#{applicationScope.demoModelGrpList}" var="node" ajaxKeys="#{null}"
binding="#{demoRptController.vehicleUiTree}"
nodeSelectListener="#{demoRptController.selectionListener}"
changeExpandListener="#{demoRptController.expansionListener}"
ajaxSubmitSelection="true">
<rich:treeNode id="modelNode" ajaxSingle="true"
icon="/images/pixel_node.gif" iconLeaf="/images/pixel_node.gif">
<h:selectBooleanCheckbox id="cbxNode" value="#{node.selected}" style="position:relative; float:left; left:-22px;" class="vcBx">
</h:selectBooleanCheckbox>
<h:outputText value="#{node.name}" style="position:relative; float:left; left:-16px;"/>
</rich:treeNode>
</rich:tree>
</rich:panel>
腳本是:
<script type="text/javascript">
<![CDATA[
function selectAllModel(checks) {
alert("calling select all");
var array = document.getElementsByTagName("input");
for(var i = 0; i < array.length; i++)
{
if(array[i].type == "checkbox")
{
if(array[i].className == "vcBx")
{
array[i].checked = checks;
}
}
}
}
]]>
</script>
我把警報有用於測試目的;它甚至沒有被調用。我很確定我的語法正確,所以這讓我撓了撓頭。
只需使用jquery或javascript爲此。讓樹中的所有複選框都具有styleClass = foo,在主複選框的onclick上,調用一個javascript函數,用於選擇所有輸入元素類型複選框class = foo具有與主複選框相同的選定/取消選擇的值 –
Doesn' t似乎在我的情況下工作,嘗試做類似的事情:var inputs = document.getElementsByTagName('input'); for(var i = 0; i
這是一個簡單的問題,使用jQuery來選擇複選框,Stackoverflow已經提供了很多答案,請研究。這是一個有前途的答案乍一看http://stackoverflow.com/questions/14925874/checking-all-checkboxes-jquery –