Checkbox 是否选中重复控制中的所有复选框?XPages启用按钮?

Checkbox 是否选中重复控制中的所有复选框?XPages启用按钮?,checkbox,repeater,xpages,xpages-ssjs,Checkbox,Repeater,Xpages,Xpages Ssjs,我没有使用checkboxgroup,因为在我的实际应用程序中,repeat控件中还有其他控件。以下是我的样本来源: <?xml version="1.0" encoding="UTF-8"?> <xp:view xmlns:xp="http://www.ibm.com/xsp/core"> <xp:repeat id="repeat1" rows="30" var="curRow" indexVar="rowIndex"><xp:this.v

我没有使用checkboxgroup,因为在我的实际应用程序中,repeat控件中还有其他控件。以下是我的样本来源:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

    <xp:repeat id="repeat1" rows="30" var="curRow" indexVar="rowIndex"><xp:this.value><![CDATA[#{javascript:['option 1', 'option 2', 'option 3']}]]></xp:this.value>

        <xp:table>
            <xp:tr>
                <xp:td>
                    <xp:checkBox text="#{javascript:curRow}"
                        id="checkBox1">

                    <xp:eventHandler event="onchange" submit="true"
                        refreshMode="complete">
                    </xp:eventHandler></xp:checkBox>
                </xp:td>

            </xp:tr>
        </xp:table></xp:repeat>
    <xp:button id="button1" value="Submit" disabled="#{javascript:!getComponent('checkBox1').isChecked()}"></xp:button>
    </xp:view>

如果我使用它们,这些警报似乎工作正常。但该按钮仍处于禁用状态。我已经启用了XPage的所有3个Dojo选项。将onchange设置为部分刷新按钮也没有任何作用。有什么我遗漏的吗?

在CSJS中解决这个问题,每次单击复选框时往返都不是很有效。这里的诀窍是:给复选框一个类,这样你就可以用它来获取所有复选框的句柄,然后循环遍历它们。在第一个错误时,您返回。如果未返回,则重置禁用值。 应该比往返快很多

var a=dojo.query('input:checked', 'view:_id1').length;
if(a!=3){
    alert('Not yet!');
    document.getElementById("#{id:button1}").removeAttribute("disabled");
}else{
    alert('Done! All checkboxes are checked!');
    document.getElementById("#{id:button1}").setAttribute("disabled", true);
}