我希望在toggleBillableChkBox方法中切换值时阻止触发selectbooleancheckbox的onchange事件。
<p:selectBooleanCheckbox value="#{myBean.billableBoolean}" widgetVar="billableEditVar"
id="billableEdit" onchange="showBillableForEdit(this)">
</p:selectBooleanCheckbox>
function showBillableForEdit(obj){
if(obj.checked){
confirmBillableYesEdit.show();
} else{
confirmBillableNoEdit.show();
}
}
<p:confirmDialog id="confirmBYesEditId" header="Please Confirm" severity="alert" visible="false"
widgetVar="confirmBillableYesEdit"
message="edit Are you sure you want to invoice this service ?" >
<p:commandButton value="Yes" oncomplete="confirmBillableYesEdit.hide();" global="false" >
</p:commandButton>
<p:commandButton value="No" onclick="toggleBillableChkBox();"
oncomplete="confirmBillableYesEdit.hide();">
</p:commandButton>
</p:confirmDialog>
function toggleBillableChkBox() {
billableEditVar.toggle();
}
答案 0 :(得分:1)
您无法阻止我知道的事件被触发,但您可以阻止它对此代码执行任何操作。 (这将替换脚本标记中的onclick
):
$('#billableEdit').on('change', function( evt ) {
evt.preventDefault();
evt.stopPropagation();
billableEditVar.toggle();
});
答案 1 :(得分:0)
return false对我来说不起作用。所以我只是在切换之前清除了元素的onchange。
function toggleBillableChkBox() {
document.getElementById('billableEdit_input').onchange = "";
billableEditVar.toggle();
}