Newsgroup: it.comp.lang.javascript
Titolo: Funzione check

Qualcuno cortesemente mi controlla la funzione che segue?
Chiamata da un BUTTON  attraverso onclick="Controllo()"
Non funziona, non da segno di se, nemmeno un errore.
 
function Controllo()
{
 
if (document.MyForm.FILE1.value == "")
{
alert("Inserire il nome di almeno un file!");
document.MyForm.FILE1.focus();
return false;
}
 
if (document.MyForm.FILE1.value.length > 0)
{
	if (document.MyForm.datai1.value.length < 8);
	{
	alert("Inserire Data inizio !");
	document.MyForm.datai1.focus();
	return false;
 
	else if (document.MyForm.datai1.value.length > 8)
 
	alert("Il formato data deve essere del tipo data breve es. 28/04/13");
	document.MyForm.datai1.focus();
	return false;
 
	}
	if (document.MyForm.dataf1.value.length < 8)
	{
	alert("Inserire Data inizio !");
	document.MyForm.dataf1.focus();
	return false;
 
	else if (document.MyForm.dataf1.value.length > 8)
 
	alert("Il formato data deve essere del tipo data breve es. 28/04/13");
	document.MyForm.dataf1.focus();
	return false;
 
	}	
}
 
if (document.MyForm.FILE2.value.length > 0)
{
	if (document.MyForm.datai2.value.length < 8)
	{
	alert("Inserire Data inizio !");
	document.MyForm.datai2.focus();
	return false;
 
	else if (document.MyForm.datai2.value.length > 8)
 
	alert("Il formato data deve essere del tipo data breve es. 28/04/13");
	document.MyForm.datai2.focus();
	return false;
 
	}
	if (document.MyForm.dataf2.value.length < 8)
	{
	alert("Inserire Data inizio !");
	document.MyForm.dataf2.focus();
	return false;
 
	else if (document.MyForm.dataf2.value.length > 8)
 
	alert("Il formato data deve essere del tipo data breve es. 28/04/13");
	document.MyForm.dataf2.focus();
	return false;
 
	}	
}
 
if (document.MyForm.FILE3.value.length > 0)
{
	if (document.MyForm.datai3.value.length < 8)
	{
	alert("Inserire Data inizio !");
	document.MyForm.datai3.focus();
	return false;
 
	else if (document.MyForm.datai3.value.length > 8)
 
	alert("Il formato data deve essere del tipo data breve es. 28/04/13");
	document.MyForm.datai3.focus();
	return false;
 
	}
	if (document.MyForm.dataf3.value.length < 8)
	{
	alert("Inserire Data inizio !");
	document.MyForm.dataf3.focus();
	return false;
 
	else if (document.MyForm.dataf3.value.length > 8)
 
	alert("Il formato data deve essere del tipo data breve es. 28/04/13");
	document.MyForm.dataf3.focus();
	return false;
 
	}	
}
 
document.forms["MyForm"].submit();
return true;
}
 
 
-- 
Gulp®

 	else if (document.MyForm.datai1.value.length > 8)
 
Questo else a cosa è riferito? Sopra hai aperto una parentesi graffa, ma 
qua non la chiudi ... quindi *DEVE* segnalarti errore. Non è che stai 
usando firefox e non stai guardando la console?
 
Inoltre manca una graffa: è corretto? Eseguirà l'alert se la length>8, e 
il focus e return false in entrambi i casi: è questo che vuoi?
 
Mi fermo qua.

Ti ringrazio molto. Risolto.
Ora però ho un altro problemino.
 
<FORM NAME="MyForm" METHOD="POST" ENCTYPE="multipart/form-data" 
ACTION="uploaderFile.asp?<% = PID %>&Actv=1" OnSubmit="return 
ShowProgress();">
 
Quell' onSubmit del FORM non parte, nonostante la fine della function 
precedente abbia:
 
document.forms["MyForm"].submit();
return true
 
ed effettivamente il Submit parta ed invii il file regolarmente.
 
Prima che aggiungessi la function Controllo() l' INPUT era type 
'Submit', e tutto funzionava. Ora invece è button e con onclick chiamo 
la function Controllo, al termine della quale c'è la riga di submit
 
Come potrai immaginare ShowProgress è una barra di progressione che 
compare in una pop-up.
 
 
-- 
Gulp®

 ed effettivamente il Submit parta ed invii il file regolarmente.
 
Esatto: invocando submit() l'evento onsubmit non viene scatenato (come da 
specifiche). Invocalo al termine della function precedente.

 specifiche). Invocalo al termine della function precedente.
 
Quell' onSubmit del FORM non parte, nonostante la fine della function 
precedente,
 di cui abbiamo discusso la correzione, invochi:
 
 document.forms["MyForm"].submit();
return true
---
Gulp
 
 
 

 return true ---
 
Esatto ... cosa non ti è chiaro di quello che ho risposto? E' così da 
specifiche ...

 specifiche ...
 
Quindi OnSubmit risponde solo quando il Submit � lanciato da un Input type 
submit dentro al form?
Se viene lanciato il Submit come comando da una funzione, il Submit parte, i 
file/dati vengono trasferiti, ma OnSubmit, che dovrebbe essere un evento 
scatenato da Submit, rimane silente?
 
Se � cos�, come posso fare per risolvere? 
 
 

 Se è così, come posso fare per risolvere?
 
Te l'ho scritto: metti tutto nella function che usi attualmente anziché 
metterne un pezzo in onsubmit. Poi ovviamente dipende da cosa fa la 
function e come si comporta.

 function e come si comporta.
 
Ok.
Non per fare il rompi, ma per imparare una cosa nuova. C'è anche la 
possibilità di mantenere separata la function ShowProgress e fare una 
chiamata del tipo: Call Showprogress sempre dalla function in questione?
 
 
-- 
Gulp®

 chiamata del tipo: Call Showprogress sempre dalla function in questione?
 
In js (come in quasi tutti gli altri linguaggi, quel "Call" mi fa venire 
i brividi, che è, vbscript?) basta invocarla (Showprogress())

Gulp® ha scritto:

perché in una pop-up?