我在certHolderAddressChange屏幕上有一个Save按钮,如下所示:
<p:commandButton id="cmdSave" value="#{label.Save}" action="save" update="certHolderAddressChange" />
在此屏幕中有一个复选框。要求是:选中此复选框并单击“保存”按钮后,将打开一个弹出窗口。弹出窗口包含2个按钮:是和否。单击是按钮,它会调用不同的操作。这是弹出代码:
<p:dialog header="#{label.primaryAdd}" widgetVar="dlg1" showEffect="bounce" hideEffect="explode" appendToBody="true">
<h:panelGrid columns="2">
<h:outputText value="#{label.msgPrimary}" />
<p:spacer width="30" height="10" />
<h:outputText />
<p:spacer width="30" height="10" />
</h:panelGrid>
<div align="center">
<p:commandButton immediate="true" value="#{label.yes}" action="makeAdd"/>
<p:spacer width="10" height="5" />
<p:commandButton value="#{label.no}" onclick="dlg1.hide()" type="button"/>
</div>
</p:dialog>
如果未选中复选框并单击“保存”按钮,则会调用简单的"save"
操作(不会打开弹出窗口)。为了实现这一点,我使用jQuery并在复选框的基础上触发操作。这是jQuery代码:
<div>
<h:inputHidden value="#{certHolderDetail.primaryInd}" id="primaryID" />
</div>
<script>
jQuery("#cmdSave").click(function(e) {
var textvalue = jQuery('#primaryID').val();
if (textvalue == 'true') {
dlg1.show();
} else {
jQuery("#save").click();
}
});
</script>
它正在运行,但问题是在每个条件下调用"save"
动作。但是,我是从按钮中删除action="save"
,然后其他部分不起作用。只有if条件适用于jQuery代码。
我想根据条件致电"save"
和"makeAdd"
行动。我怎样才能做到这一点?
同样在每个条件(选中或取消选中复选框)中,每次都会触发“保存”操作。我想在选中复选框时停止保存操作.....
答案 0 :(得分:0)
不确定您使用的是哪个版本的jQuery
1.6+这就是你想要的
jQuery("#cmdSave").click(function(e) {
var textvalue = jQuery('#primaryID').prop('checked');
if (textvalue == true) {
dlg1.show();
} else {
jQuery("#save").click();
}
});
&lt; 1.6+这将起作用
jQuery("#cmdSave").click(function(e) {
var textvalue = jQuery('#primaryID').attr('checked');
if (textvalue == 'checked') {
dlg1.show();
} else {
jQuery("#save").click();
}
});