Ecco una funzione molto utile per nascondere le section di un'entità alla selezione di un valore di una picklist.
Innanzi tutto i nomi delle section devono essere uguali ai nomi dei valori della picklist.
Innanzi tutto richiamo una funzione che scorre tutti i <TD> della pagina cercando quelli che hanno lo style che mi interessa, in questo caso "sec bar" che è lo style delle section, dopo di che prendo gli element e li metto in un array "section".
function InitOnlySections()
{
var tmpSections = document.getElementsByTagName("td");
var sections = new Array();
for(var tmpSection in tmpSections)
{
if(tmpSections[tmpSection].className == "sec bar" || tmpSections[tmpSection].className == "sec ")
{
sections.push(tmpSections[tmpSection]);
}
}
InitSections(sections);
}
Alla fine richiamo la funzione InitSections(sections); passandogli l'array che ho costruito. E dentro questa funzione ciclo per tutti gli elementi della picklist e per tutti gli elementi della section, quando il nome della section corrisponde al nome del valore della picklist nascondo la section con la funzione custom ShowHideElement(element, true); e salvo un array con la definizione dei campi della picklist.
function InitSections(sections) { var options = pickList.options; var obj = new Object(); for(var option = 0; option < options.length; option++) { for(var section = 0; section < sections.length; section++) { if(options[option].text.toLowerCase() == sections[section].innerText.toLowerCase()) { var element = sections[section].parentElement.parentElement.parentElement; var name = options[option].text.toLowerCase(); obj[name] = element; ShowHideElement(element, true); break; } } } pickListSectionsDefinition = obj; SetSection(); }