:master: ho voluto provare anch'io perchè mi pare in fondo, interessante, seguendo però un aproccio diverso.
Ossia, il pulsante e la select lanciano tutte e due la procedura ShowHide.
Questa procedura, per sapere cosa fare, deve conoscere chi l'ha lanciata: o il pulsante o la select, nel nostro caso, e si comporta in conseguenza.
Perciò, la procedura viene lanciata aggiungendo il parametro event, come da esempio:
<button onclick="ShowHide(event, 'show1',********
e,
<select name="autore" id="autore" onchange="ShowHide(event, ****);">
la procedura, fa:
codice:
function ShowHide(e,id1,id2,id_se1)
{
//accedo all'oggetto event
if(!e) var e = window.event;
var target = (e.target)?e.target:e.srcElement;
if(target.tagName.toUpperCase() == "BUTTON" )
{
if(document.getElementById)
{
el1 = document.getElementById(id1);
el2 = document.getElementById(id2);
se1 = document.getElementById(id_se1);
if(el1.style.display == "none")
{
el1.style.display = "block";
el2.style.display = "none";
se1.disabled = false;
}
else
{
el1.style.display = "none";
el2.style.display = "block";
se1.disabled = true;
}
}
}
else if(target.tagName.toUpperCase() == "SELECT" )
{
var valore_select = target.value;
document.getElementById("show1").disabled = valore_select != "";
}
}
vedi se può essere utile