Il fatto e' che tu stai visualizzando i dati in delle options.
L'oggetto select e option ha delle prop tte sue e non e' detto che tu possa usa lo style display:none/block tu tale elemnto.
Non e' un prb di js ma di css e di come il browser lo gestisce.
Per fare quelloc he vuoi devi gestire l'array delle option nella select non puoi usare i display.
io ti consiglio di usare un approccio diverso
ti fai degli array array di option e vai a svuotare e ripopolare le select scorrendo e filtrando tali array , usare il display su elementi di tipo option e' follia.
esempio
Codice PHP:
function svuotaSelect( id )
{
while(id.length>0)
id.remove(0);ì
}
function popolaSelect( id , dati)
{
svuotaSelect(id);
for(var i = 0; i<dati.length ; i++ )
{
id.options[i] = new Option( dati[i].testo , dati[i].value );
}
}
Cosi ti puoi svuotare e ripopolare le select come ti pare
per invocare e passare i dati fai
Codice PHP:
// JSON ARRAY CONFIG
dati =new Array(
{ "testo" : "testo1" , "value" : "1" } ,
{ "testo" : "testo2" , "value" : "2" } ,
{ "testo" : "testo3" , "value" : "3" }
) ;
popolaSelect( document.getElementById('select_id_12' , dati ) )