<script type="text/javascript">
       function checkUncheckWOClosure()
        {
            if(woTypeAutoWOClosure.isChecked() == true)
                {
                woTypeAutoActClosure.check();
                }
            else
                {
                woTypeAutoActClosure.uncheck();
                }
        }
      </script>

<p:selectBooleanCheckbox id="workOrderTypeAutoActClosure"
                                     value="#{workOrderTypeCrud.instance.autoActClosure}" widgetVar="woTypeAutoActClosure">
 </p:selectBooleanCheckbox>
 <p:selectBooleanCheckbox id="workOrderTypeAutoWOClosure"
                                     value="#{workOrderTypeCrud.instance.autoWOClosure}" widgetVar="woTypeAutoWOClosure" onclick="checkUncheckWOClosure()">
  </p:selectBooleanCheckbox>


实际上,我想在单击第二个复选框时自动选中第一个复选框,而在取消选中第二个复选框时取消选中第一个复选框。

最佳答案

您的代码有一些错误:


<p:selectBooleanCheckbox />没有onclick属性。另一种可能是onchange属性:


<p:selectBooleanCheckbox
    id="workOrderTypeAutoWOClosure"
    value="#{workOrderTypeCrud.instance.autoWOClosure}"
    widgetVar="woTypeAutoWOClosure"
    onchange="checkUncheckWOClosure();">
/>



仅通过JS的widgetVar属性值引用组件是行不通的。您必须使用PF('<widgetVar>')


function checkUncheckWOClosure() {
    if(PF('woTypeAutoWOClosure').isChecked() == true) {
        PF('woTypeAutoActClosure').check();
    } else {
        PF('woTypeAutoActClosure').uncheck();
    }
}

关于javascript - 无法从PrimeFaces CommandButton调用JavaScript方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38713278/

10-09 16:09