Вызов различных действий для одной и той же кнопки с помощью jquery - PullRequest
0 голосов
/ 20 октября 2011

У меня есть кнопка Сохранить на экране certHolderAddressChange, как показано ниже:

<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" с кнопки, то остальная часть не будет работать. В коде jQuery работает только условие if.

Я хочу назвать действия "save" и "makeAdd" на основе условия. Как мне этого добиться?

Также в каждом состоянии (флажок установлен или не установлен) действие «сохранить» запускается каждый раз. я хочу остановить действие сохранения, когда флажок установлен .....

1 Ответ

0 голосов
/ 21 октября 2011

Не уверен, какую версию jQuery вы используете

1.6 + это то, что вы хотите

jQuery("#cmdSave").click(function(e) {
        var textvalue = jQuery('#primaryID').prop('checked');
        if (textvalue == true) {
            dlg1.show();
        } else {
            jQuery("#save").click();
        }
    }); 

<1.6+ это будет работать </p>

jQuery("#cmdSave").click(function(e) {
        var textvalue = jQuery('#primaryID').attr('checked');
        if (textvalue == 'checked') {
            dlg1.show();
        } else {
            jQuery("#save").click();
        }
    }); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...