Как отключить командную кнопку apex, если флажок установлен или снят? - PullRequest
0 голосов
/ 13 декабря 2018

Я создаю страницу visualforce для своей компании и хочу, чтобы кнопка отправки была отключена, если флажок на странице не изменен.Я смог сделать это с помощью обычной кнопки ввода, но мне нужно, чтобы это было сделано с помощью кнопки Apex, чтобы они могли обновить запись, которая запустит внутренний процесс.

Вот мой код

<apex:page standardController="RMA__c">
<apex:form >
    <apex:outputPanel id="thePanel" rendered="{!(RMA__c.RLI_has_QUOTE_SO__c == true)}">
    <apex:pageBlock id="TheBlock" title="Confirm Information" mode="edit">
        <apex:pageBlockSection id="theSection" title="Confirm the  new field values" columns="2" rendered="{!(RMA__c.Show_the_box__c == true)}">
            <apex:outputfield value="{!RMA__c.Contact__c}"/>
            <apex:outputfield value="{!RMA__c.Shipping_Priority__c}"/>
            <apex:outputfield value="{!RMA__c.Ship_to_Address__c}"/>
            <apex:outputfield value="{!RMA__c.Bill_to_Address__c}"/>
            <apex:inputfield value="{!RMA__c.Request_Priority__c}"/>
            <apex:inputField id="reviewed" value="{!RMA__c.Changes_are_reviewed__c}"/> 
        </apex:pageBlockSection>
        <apex:pageblockButtons id="button">
        <apex:commandButton value="Submit" action="{!save}" id="saveit" disabled="true"/>
        </apex:pageblockButtons>
        <script>
         var checker = document.getElementById("{!$Component.TheBlock.theSection.reviewed}");
         var sendbtn = document.getElementById("{!$Component.TheBlock.button.saveit}");
         checker.onchange = function()
         {
          if(this.checked)
          {
            sendbtn.disabled = false;
          } 
          else 
          {
            sendbtn.disabled = true;
          }
         }
       </script>
   </apex:pageBlock>
    </apex:outputPanel>
</apex:form>

1 Ответ

0 голосов
/ 27 декабря 2018

Вы можете использовать свойство reRender в RMA__c.Changes_are_reviewed_c поле ввода

Сначала оберните командную кнопку с помощью <apex:outputpanel>

<apex:outputpanel>
  <apex:commandButton value="Submit" action="{!save}" id="saveit" disabled="{!RMA__c.Changes_are_reviewed__c==false}"/>
</apex:outputpanel>

, затем измените ее значение с

<apex:inputField id="reviewed" value="{!RMA__c.Changes_are_reviewed__c}" reRender="saveit"/>

Надеюсь, это поможет.Я не скомпилировал код в salesforce, там может быть ошибка компиляции.Но, таким образом, это будет работать.

...