Newsgroup: it.comp.lang.javascript
Titolo: form e verifica

Salve a tutti,
io nella mia homepage ho inserito questo codice subito dopo il tag <body>:
<script language="javascript">
  // Verifica che sia stata specificata una risposta al sondaggio
  function Submitform() {
       if  (document.sondaggio.risposta.value=='') alert("Non hai
specificato una risposta!");
  }
</script>
In questa pagina  c'è un form "sondaggio" con 5 input di tipo radio,
name=risposta e value= 1 ...5 a seconda dell'input .
Nell'attributo onClick del pulsante per l'invio del form ho inserito
"Submitform()" ma quando vado a provare il tutto lo script non viene
eseguito e il form viene inviato.
Sapete dirmi dove ho sbagliato?
Grazie
Fabrizio

 specificato una risposta!");
esiste una proprietą dei radiogroup che dovrebbe essere selected
quindi tu hai
    if
(document.sondaggio.risposta.options[document.sondaggio.risposta.selectedInd
ex].value=='')....
ho controllato dovrebbe funzionare!!!
Ciao

"fabrizio" <fabs...@liberoNOSPAM.it> ha scritto nel messaggio
news:v0C7b.92237$sj6.1...@tornado.fastwebnet.it...

Mi sa che devi farti un ciclo sui radio. Tipo questo:
       specificato = 0;
       for (i=0; i<document.sondaggio.risposta.length && !specificato; i++)
         specificato = document.sondaggio.risposta[i].checked;
       if (!specificato) alert("Non hai specificato una risposta!");
Poi, se non vuoi far partire il form devi fare un "return false;"
e nell'onclick mettere "return Submitform()" e non solamente "Submitform()".
Ciao,
Ema

 
L'evento si chiama *onclick* non onClick. Sul codice HTML funziona 
ugualmente ma se ti capita di doverlo richiamare da javascript 
(obj.onclick()) non e' la stessa cosa.
Per quanto riguarda il tuo problema di ha gia' risposto Nicola Trevisan 
e penso che abbia ragione.
Ciao.
  -Ema-

Caspita! Pare che ci diamo appuntamento. Abbiamo risposto allo stesso 
post con un solo minuto di differenza. :-)
Ciao.
  -Ema-

> ho controllato dovrebbe funzionare!!!
A me non funziona :(
Avete qualche altra idea?
Grazie ancora
Fabrizio

"-Ema-" <a@a.a> ha scritto nel messaggio
news:FxC7b.307251$Ny5.9...@twister2.libero.it...

Gia', LOL
e il caro fabrizio sembra non averci ca@ato di striscio...
Cmq, a me, la soluzione di Nicola NON funziona (Mozilla 1.4).
Ciao,
Ema

 Cmq, a me, la soluzione di Nicola NON funziona (Mozilla 1.4).
Hai ragione.
Temo che il nostro fabrizio abbia inserito l'onclick in un input 
type="submit" che se non ricordo male non esiste. La posizione corretta 
in cui intercettare l'evento e' l'event handler onsubmit della form.
In questo modo non solo siamo sicuri di intercettare l'evento ma 
possiamo anche evitare il submit restituendo false.
Ecco la soluzione:
<html>
<script>
function Submitform() {
	var aform = window.document.forms["sondaggio"];
	for( var i = 0; i < aform.risposta.length; i++ )
		if( aform.risposta[i].checked )
			return true;
	alert( "selezionare qualcosa!" );
	return false;
}
</script>
</head>
<body>
<!-- *ATTENZIONE*: invento gli attributi della form. Pensaci tu -->
<form name="sondaggio" id="sondaggio" method="GET" 
action="
http://www.iol.it
" onsubmit="return Submitform();">
	<input type="radio" name="risposta" value="1"> 1<br>
	<input type="radio" name="risposta" value="2"> 2<br>
	<input type="radio" name="risposta" value="3"> 3<br>
	<input type="radio" name="risposta" value="4"> 4<br>
	<input type="radio" name="risposta" value="5"> 5<br>
	<input type="submit" value="Submit">
</form>
</body>
Ciao.
  -Ema-

Più tardi provo a vedere se fuziona. Ti farò sapere.
Grazie mille!
Fabrizio