Newsgroup: it.comp.lang.javascript
Titolo: validazione form

Salve,
ho un problema:
con il php mi creo una serie di righe, ognuna delle quali contiene un 
form che si chiama formData e che contiene un campo che si chiama 
numero_atto
l'utente dovrebbe inserire un numero e cliccare sul bottone a fianco. 
Se dimentica di inserire il numero javascript "dovrebbe" avvertirlo 
della dimenticanza.
la validazione non mi funziona e credo di aver capito perché: ho n 
form con lo stesso nome e "lui" non sa a quale mi riferisco
with(document.formData) {
	if(numero_atto.value=="") {
	alert("Inserire il numero dell'atto");
	numero_atto.focus();
	return false;
	}
come posso ovviare al problema?
Grazie
-- 
distinti saluti,
Salvatore Paci

 come posso ovviare al problema?
immagino sia dentro una function. In tal caso passa il form. Come? 
Dipende dal contesto; se la esegui premendo il tasto puoi passare 
this.form, se la esegui onsubmit basta this.
Poi, al posto di document.formData, userai il parametro fornito.

 Poi, al posto di document.formData, userai il parametro fornito.
-------
Il codice di cui sopra è dentro una functione e viene richiamato con un 
onsubmit.
"this" dove lo metto? Al posto di document.formData?


 "this" dove lo metto? Al posto di document.formData? Grazie
this è il riferimento all'oggetto che scatena la function. quindi, nel 
tuo caso, la form. Va passato come parametro.
Nella function usi il parametro passato al posto di document.formData.

Riporto la parte di codice interessata:
<script language="JavaScript">
function validazione(){
with(document.formData) {
	if(numero_atto.value=="") {
	alert("Inserire il numero dell'atto");
	numero_atto.focus();
	return false;
	}
}
alert("Il modulo è completo, grazie");
return true;
}		
</script>
e poi nel body
per un numero x di volte il seguente codice
(quindi ci saranno x form con lo stesso nome)
<td><form method="POST" action="assegna.php?id=$quale_id[$y]" 
onSubmit="return validazione();" name=formData><input type="text" 
name="numero_atto"><input type="submit" value="assegna" name="B1"></td>


 Riporto la parte di codice interessata:
[CUT]
E quindi? cosa non ti quadra nella mia precedente risposta?

 Nella function usi il parametro passato al posto di document.formData.
ho provato così ma non mi funziona
function validazione(this){
//with(document.formData) {
	if(this.numero_atto.value=="") {
	alert("Inserire il numero dell'atto");
	this.numero_atto.focus();
	return false;
//	}
}
--------
onSubmit="return validazione(this);" (nel form)


 	alert("Inserire il numero dell'atto"); this.numero_atto.focus();
Ovviamente anche questo focus andrà cambiato con 
nomeparametro.numero_atto.focus();

 Il Wed, 22 Dec 2010 15:30:23 +0000, salvatore paci ha scritto:

--------------
Chiedo scusa per il tempo che vi sto facendo perdere e vi ringrazio per la 
pazienza.
Programmo in php (+MySql) e i codici javascript che uso solitamente (dato che 
sono sempre gli stessi (e semplici)) mi funzionano.
Per me questo è un caso anomalo in quanto mi vengo a trovare con tanti form 
che hanno lo stesso nome (perché creati n volte in base al numero di record 
trovati nel database).
Ho un'applicazione quasi completa (quasi = solo questo problema) e entro 
dopodomani devo consegnarla. Credo che risolverò diversamente.
Ancora grazie


 grazie
Beh, ma non capisco: o c'è qualche altro problema che non conosco, 
oppure, se conosci php, non puoi non sapere come funzionano i parametri 
di una function...
la function la chiami con nomefunzione(this) (da onsubmit)
la tua function diventa validazione(sender) {
dopodiché userai il parametro:
with(sender) {
 if(sender.numero_atto ....
	sender.numero_atto.focus();....
Se così non va, vuol dire che c'è qualche altro problema.

 Ancora grazie
Ma usi il tag "id" o quello "name" dei moduli per identificarli tramite
javascript e/o php?
Presumendo che nel ciclo php ci sia un contatore chiamato $c:
<input type="text" name="campo[]" id="campo<?php echo $c; ?>" value=""
/>
Max
-- 
http://www.maxori.it
L'Arte è la capacità di fare cose di nessun valore
e di riuscire a venderle
F. Zappa

 Max
===
Uso name.
Grazie
