function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Ashim ChapagainAshim Chapagain 

show or hide fields based on picklist value

We have Picklist fields in opporunity object named "AP Solution" and "DMS Solutions" both of them have the same picklist value such as "Implemented", "Qualified out", "Qualified" and "Not sure". As soon as implemented is chosen a new field named "date implemented" must appear and as soon as a qulified is chosen "demo" checkbox should appear. There is any way to do it using visual force.
Khan AnasKhan Anas (Salesforce Developers) 
Hi Ashim,

Greetings to you!

Below is the sample code which I have tested in my org and it is working fine. Kindly modify the code as per your requirement.

Visualforce:
<apex:page standardController="Contact" extensions="HideSectionBasedOnPicklistC">
    <apex:form >
        <apex:pageBlock > 
            <apex:actionRegion >
                <apex:selectList value="{!pickchoice}" multiselect="false" size="1">
                    <apex:selectOptions value="{!items}"/>
                    <apex:actionSupport event="onchange" rerender="out1,out2"/>
                </apex:selectList>
            </apex:actionRegion>            
            <br/><br/>
            <apex:pageBlockSection id="out1" >
                <apex:outputPanel rendered="{!IF(pickchoice== 'NRI' && pickchoice!= 'None', true , false)}">                    
                    <apex:outputLabel value="First Name" /><br/>
                    <apex:inputField value="{!contact.FirstName}" /><br/><br/>
                    <apex:outputLabel value="Last Name" /><br/>
                    <apex:inputField value="{!contact.LastName}" />
                </apex:outputPanel>
            </apex:pageBlockSection>
            
            <apex:pageBlockSection id="out2" >
                <apex:outputPanel rendered="{!IF(pickchoice== 'Non-NRI' && pickchoice!= 'None', true , false)}">
                    <apex:outputLabel value="Email" /><br/>
                    <apex:inputField value="{!contact.Email}" /><br/><br/>
                    <apex:outputLabel value="Phone" /><br/>
                    <apex:inputField value="{!contact.Phone}" />
                </apex:outputPanel>
            </apex:pageBlockSection>        
        </apex:pageBlock>
    </apex:form>
</apex:page>

Controller:
public class HideSectionBasedOnPicklistC {
    
    public String Pickchoice {get;set;}
    
     public HideSectionBasedOnPicklistC(ApexPages.StandardController controller) {

    }
    
    public List<SelectOption> getItems() {
        List<SelectOption> options = new List<SelectOption>();
        options.add(new SelectOption('None','None'));
        options.add(new SelectOption('NRI','NRI'));
        options.add(new SelectOption('Non-NRI','Non-NRI'));
        return options;
    }
}

Or you can use the below code also:
<apex:page standardController="Account">
    
    <apex:form id="theForm">
        
        <apex:pageBlock>
            <apex:pageblockSection>
                <apex:inputField value="{!Account.Rating}">
                    <apex:actionSupport event="onchange" reRender="theForm"/>
                </apex:inputField>
            </apex:pageblockSection>
        </apex:pageBlock>
        
        <apex:pageblock>
            <apex:pageblockSection rendered="{!Account.Rating = 'Hot'}">
                <apex:inputField value="{!Account.Name}"/>
            </apex:pageblockSection>
            
             <apex:pageblockSection rendered="{!Account.Rating = 'Warm'}">
                <apex:inputField value="{!Account.Phone}"/>
            </apex:pageblockSection>
            
            <apex:pageblockSection rendered="{!Account.Rating = 'Cold'}">
                <apex:inputField value="{!Account.Website}"/>
            </apex:pageblockSection>
        </apex:pageblock>
        
    </apex:form>
    
</apex:page>

I hope it helps you.

Kindly let me know if it helps you and close your query by marking it as solved so that it can help others in the future. It will help to keep this community clean.

Thanks and Regards,
Khan Anas
Nubes Elite Technologies Pvt. LtdNubes Elite Technologies Pvt. Ltd
Hi Ashim,

Please refer to the below link from salesforce stack exchange exactly with similar issue.Kindly modify the code as per your requirement which helps you surpass the above challenge.

http://salesforce.stackexchange.com/questions/101208/how-to-hide-show-the-fields-based-on-picklist-value

For more information check here:
https://success.salesforce.com/ideaView?id=08730000000IaIq
https://developer.salesforce.com/forums/?id=906F000000098qrIAA

Thank You,
www.nubeselite.com
Development | Training | Consulting

Please mark this as solution if your problem is solved.