PDA

View Full Version : [Javascript] Attivare pulsante


dariuzzo80
02-06-2006, 01:03
Ciao a tutti, ho creato un form html e vorrei che il tasto "submit" diventi cliccabile solo dopo aver cliccato in un radio-button. Credo che dovrei gestire un evento di tipo onclick, ma non so bene cosa dichiarare (sono abbastanza nuovo del linguaggio :rolleyes: )... la pagina è semplice html, niente di dinamico, inoltre vorrei integrare il codice nella pagina, non come file esterno. Cosa accade se il browser dell'utente ha javascript disabilitato?
Grazie! Dario

andbin
02-06-2006, 11:03
Ciao a tutti, ho creato un form html e vorrei che il tasto "submit" diventi cliccabile solo dopo aver cliccato in un radio-button. Credo che dovrei gestire un evento di tipo onclick, ma non so bene cosa dichiarare (sono abbastanza nuovo del linguaggio :rolleyes: )... la pagina è semplice html, niente di dinamico, inoltre vorrei integrare il codice nella pagina, non come file esterno.Ciao, ecco un esempio:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Attiva Submit</title>
<script type="text/javascript">
<!--
function abilita_submit ()
{
document.form1.btn_submit.disabled = false;
}
//-->
</script>
</head>
<body>

<form name="form1" action="">
<p>
<input type="radio" name="r1" value="1" onclick="abilita_submit()">Prova 1
<br>
<input type="radio" name="r1" value="2" onclick="abilita_submit()">Prova 2
<br>
<br>
<input type="submit" name="btn_submit" value="INVIA" disabled="disabled">
</p>
</form>

</body>
</html>All'inizio il pulsante di invio è disabilitato (grazie all'attributo disabled). Cliccando su uno dei due radio-button, il pulsante viene abilitato.

Cosa accade se il browser dell'utente ha javascript disabilitato?Nell'esempio che ho postato, non sarebbe più possibile abilitare il pulsante.

andbin
02-06-2006, 22:40
Ci sarebbe una seconda possibilità che non mi è subito venuta in mente. :p
Fare a livello di Javascript sia la disabilitazione che la abilitazione del pulsante. In questo modo, se Javascript non fosse disponibile, il pulsante resterebbe per default già attivo. Non sarebbe quello che vuoi ma sarebbe il male minore. ;)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Attiva Submit</title>
<script type="text/javascript">
<!--
function disabilita_submit ()
{
document.form1.btn_submit.disabled = true;
}

function abilita_submit ()
{
document.form1.btn_submit.disabled = false;
}
//-->
</script>
</head>
<body onload="disabilita_submit()">

<form name="form1" action="">
<p>
<input type="radio" name="r1" value="1" onclick="abilita_submit()">Prova 1
<br>
<input type="radio" name="r1" value="2" onclick="abilita_submit()">Prova 2
<br>
<br>
<input type="submit" name="btn_submit" value="INVIA">
</p>
</form>

</body>
</html>Come vedi ho tolto l'attributo disabled="disabled" e ho messo una funzione apposita che disabilita il pulsante quando la pagina viene caricata.

Vedi un po' cosa ti fa più comodo! :)

dariuzzo80
03-06-2006, 00:29
In realtà i pulsanti "submit" erano due nel mio caso, con i due radio button che andavano ad attivare alternativamente l'uno o l'altro bottone (l'attivazione di uno escludeva l'altro). Comunque il codice era molto chiaro, e sono riuscito a gestire egregiamente la situazione.
Grazie 1000 per l'aiuto! Dario