How do I hide/show a tab within a form section based on another field?

Kevin Recio1
Mega Contributor

On our change form, we are adding a tab specifically for application type change requests (as opposed to our infrastructure changes). We would like to have this tab be hidden unless someone chooses "Application" in the 'Class' field:

find_real_file.png

I tried using the instructions from this blog post, but the Application tab is still showing no matter what is chosen in the Class field. Below is the script I have:

find_real_file.png

Pasted as text:

[To show the tab when "Application" is chosen]

function onCondition() {

g_form.setSectionDisplay('application', false);

//Show the section
var section = $$('span[tab_caption_raw="Application"]')[0].select('span[id*=section.]')[0];
section.show();
//Show the tab
$$('.tab_caption_text').each(function(caption) {
if(caption.innerHTML == 'Application'){
caption.up('.tab_header').show();
}
});}

 

[To hide the tab when "Application" is not chosen]

function onCondition() {

g_form.setSectionDisplay('application', false);

//Hide the section
var section = $$('span[tab_caption_raw="Application"]')[0].select('span[id*=section.]')[0];
section.hide();
//Hide the tab
$$('.tab_caption_text').each(function(caption) {
if(caption.innerHTML == 'Application'){
caption.up('.tab_header').hide();
}
});

}

1 ACCEPTED SOLUTION

Lets start with minimum code in both true and false code blocks

Make sure  active=true, reverse if false = true

 

for the true code block use

 

 

function onCondition() {

g_form.setSectionDisplay('application', false);
/*
//Show the section
var section = $$('span[tab_caption_raw="Application"]')[0].select('span[id*=section.]')[0];
section.show();
//Show the tab
$$('.tab_caption_text').each(function(caption) {
if (caption.innerHTML == 'Application') {
caption.up('.tab_header').show();
}
});
*/
}

 

for false code block use

function onCondition() {

g_form.setSectionDisplay('application', true);

/*
//Hide the section
var section = $$('span[tab_caption_raw="Application"]')[0].select('span[id*=section.]')[0];
section.hide();
//Hide the tab
$$('.tab_caption_text').each(function(caption) {
if (caption.innerHTML == 'Application') {
caption.up('.tab_header').hide();
}
});
*/
}

 

 

 

Please mark Correct and click the Thumb up if my answer helps you resolve your issue. Thanks!
Vinod Kumar Kachineni
Community Rising Star 2022

View solution in original post

18 REPLIES 18

Hello Vinod , 

 

In above scrip which application is referring to class value "Application and the Tab Name "Application" 

 

g_form.setSectionDisplay('application', false); ---> Is this the class field choice value or the Tab name 

 

same for below two 

 

var section = $$('span[tab_caption_raw="Application"]')[0].select('span[id*=section.]')[0]; 

 

if (caption.innerHTML == 'Application'

 

Thanks in advance. 

Amit 

 

Tab names.

g_form.setSectionDisplay takes the tab names.

 

To get section names on a form use

 

var sections = g_form.getSectionNames();

console.log(sections.toString());

Please mark Correct and click the Thumb up if my answer helps you resolve your issue. Thanks!
Vinod Kumar Kachineni
Community Rising Star 2022

vkachineni
Kilo Sage
Kilo Sage

See if the section names are correct

Add the code in both true/false

get a list

 

var sections = g_form.getSectionNames();

alert(sections.toString());

 

//Tested this on PDI

if category is hardware do not show tab conflicts

function onCondition() {
g_form.setSectionDisplay('conflicts', false); //or true depending on the condition should work
}

Please mark Correct and click the Thumb up if my answer helps you resolve your issue. Thanks!
Vinod Kumar Kachineni
Community Rising Star 2022

Thank you for your response vkachineni. Are you saying I should try using these scripts? Sorry I'm not sure what you exactly mean here. If you could provide some clarification, that would be helpful - as you can see I'm not very experienced with this stuff.

I have tested this code on incident

if category is hardware do not show tab conflicts

function onCondition() {
g_form.setSectionDisplay('conflicts', false); //or true depending on the condition should work
}

Please mark Correct and click the Thumb up if my answer helps you resolve your issue. Thanks!
Vinod Kumar Kachineni
Community Rising Star 2022