1

inputField "Gift_ c.PaymentMethod _c" (ドロップダウン) に特定の値、つまり「クレジット カード」がある場合にのみ、pageBlockSection "ccBlock" を表示したいと思います。私は多くのアプローチを試みましたが、今のところうまくいきません。

    <apex:pageBlockSection title="Basic Information" columns="1" >
        <apex:inputField value="{!Gift__c.Contact__c}"/>
        <apex:inputField value="{!Gift__c.PaymentMethod__c}" id="payMethod" >
            <apex:actionSupport event="onchange"  reRender="ccBlock, bankBlock" action="{!HideBlock}" />
        </apex:inputField>
    </apex:pageBlockSection>
    <apex:pageBlockSection title="Credit Card" rendered="{!visi}" columns="1" id="ccBlock">
        <apex:inputField value="{!Gift__c.CCType__c}"/>
        <apex:inputField value="{!Gift__c.CCName__c}"/>
        <apex:inputField value="{!Gift__c.CCNumber__c}"/>
        <apex:inputField value="{!Gift__c.CCExpiryMonth__c}"/>
        <apex:inputField value="{!Gift__c.CCExpiryYear__c}"/>
    </apex:pageBlockSection>  
4

1 に答える 1

1

すでに非表示になっている pageBlockSection を再レンダリングしようとしたため、ソリューションが機能しなかったため、このセクションにアクセスできません。そのためには、「ラッパー」パネルを再レンダリングする必要があります。

私はJavaScriptだけでこのようなことをすることを好みます:

<apex:pageBlockSection title="Basic Information" columns="1" >
    <apex:inputField value="{!Gift__c.Contact__c}"/>
    <apex:inputField value="{!Gift__c.PaymentMethod__c}" id="payMethod" onchange="checkValue()"/>
</apex:pageBlockSection>

<apex:outputPanel style="display:none;" id="myPanel">
    <apex:pageBlockSection title="Credit Card" rendered="{!visi}" columns="1" id="ccBlock">
        <apex:inputField value="{!Gift__c.CCType__c}"/>
        <apex:inputField value="{!Gift__c.CCName__c}"/>
        <apex:inputField value="{!Gift__c.CCNumber__c}"/>
        <apex:inputField value="{!Gift__c.CCExpiryMonth__c}"/>
        <apex:inputField value="{!Gift__c.CCExpiryYear__c}"/>
    </apex:pageBlockSection>  
</apex:outputPanel>

<script>
function checkValue(){
    if(jQuery('[id$=payMethod]').val() == 'Credit Card'){
        jQuery('[id$=myPanel]').show();
    }
    else{
        jQuery('[id$=myPanel]').hide();
    }
}
</script>
于 2012-10-01T14:01:51.373 に答える