Newsgroup: it.comp.lang.javascript
Titolo: ma che probleminoinoino

allora, faccio questo: ho un forum che deve inviare dei dati, e al 
submit ho questa funzione, e teoricamente dovrebbe fare in modo che se 
lo stato è negato, allora niente non invia niente, mentre se è != da 
negato allora dovrebbe inviare, segue (grazie intanto):
<form name="compila_schede_form" method="post" 
action="compila_schede.asp?compila_schede=1" 
enctype="application/x-www-form-urlencoded" target="_self">
vari input....
<input type="submit" name="schede_invia" value="invia_scheda" 
onClick="return controllo_invio_schede('6');">
</form>
e js:
var val;
var i=1;
var k=0;
var stato;
function controllo_invio_schede(valore){
	while(i<=valore) {	
		val1 = document.compila_schede_form.elements['unita'+i].value;
		val2 = document.compila_schede_form.elements['flacone1'+i].value;
		val3 = document.compila_schede_form.elements['flacone2'+i].value;
		val4 = document.compila_schede_form.elements['min'+i].value;
		val5 = document.compila_schede_form.elements['max'+i].value;
		if((val1 == '')&&(val2 == '')&&(val3 == '')&&(val4 == '')&&(val5 == '')){
			stato = 'negato';			
		}
 
	i=i+1
	}
	if(stato=='negato'){
		return alert('Attenzione: la scheda risulta essere vuota');
	}else{
		return true
	}
}

 		return alert('Attenzione: la scheda risulta essere vuota');
e sei sicuro che un alert restituisca false per bloccare la propagazione?
io comunque uso sempre onsubmit, ma penso sia la stessa cosa (non ne sono
sicuro, mai usato onclick in quel contesto)
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 mai usato onclick in quel contesto)
si' in effetti e' la stessa cosa, o meglio un onsubmit nel form evita
l'invio del form anche nel caso di press return in un textbox (con IE) o
click di uno o piu' altri submit-botton...
mettere onclick li', vuol dire gestire il submit del form SOLO di quel
bottone e permettere tutto il resto...

mi va bene ragazzi ma con onsubmit non mi viene un bel cavolo, ora 
riprovo e vi faccio sapere intanti tnx

 riprovo e vi faccio sapere intanti tnx
Atenzione, come avevo puntualizzato (evvidentemente non a sufficienza), per
evitare incomprensioni, l'evento onsubmit e' da associarsi al form
ciao

Ugo ha scritto:
 > Atenzione, come avevo puntualizzato (evvidentemente non a 
sufficienza), per
 > evitare incomprensioni, l'evento onsubmit e' da associarsi al form
 >
 > ciao
sisi ma ho ovviato guarda qua:
if((val1 != '')&&(val1 != 'undefined')&&(val2 != '')&&(val2 != 
'undefined')&&(val3 != '')&&(val3 != 'undefined')&&(val4 != '')&&(val4 
!= 'undefined')&&(val5 != '')&&(val5 != 'undefined')){
			stato="accordato";
}
	if((stato!='accordato')||(stato=='undefined')){
		alert('Attenzione: la scheda risulta essere vuota');
	}
 
	if((stato!='accordato')||(stato=='undefined')){
		return false
	}
va alla grande :D bye

 	}
sarebbe bene che qui mettessi
return true;

Ugo ha scritto:

nono ho rifatto la funzione, il problema stava "nel dove" avevo inserito 
il tag <form> vado in OT, avendo un ciclo in asp doveva andare dopo aver 
determinato un certo valore, io l'avevo messo prima con il submit etc... 
ora è tutto ok va alla grande, ora incollo il codice js:
function controllo_invio_schede(valore){
	//* setto le variabili
	analite_v = 0;
	i=1
	//*creo il ciclo (leggo i 5 campi del form per ogni riga e ne setto le 
rispettive variabili che controllerò di seguito
	while(i<=valore) {	
		val1 = document.compila_schede_form.elements['unita'+i].value;
		val2 = document.compila_schede_form.elements['flacone1'+i].value;
		val3 = document.compila_schede_form.elements['flacone2'+i].value;
		val4 = document.compila_schede_form.elements['min'+i].value;
		val5 = document.compila_schede_form.elements['max'+i].value;
 
		//* nello stesso ciclo controllo se le variabili create sono piene ed 
esistono
		if((val1 != '')&&(val1 != 'undefined')&&(val2 != '')&&(val2 != 
'undefined')&&(val3 != '')&&(val3 != 'undefined')&&(val4 != '')&&(val4 
!= 'undefined')&&(val5 != '')&&(val5 != 'undefined')){
			//* setto le righe completamente piene
			analite_v = analite_v+1;
		}
		//* incremento la variabile ciclica
		i=i+1
	}
	//* setto le righe completamente vuote
	analite_r = valore-analite_v;
	//* controllo le righe piene e vuote
	if(analite_r==valore){ //* se le righe sono tutte vuote fermo il submit
		return false;
	} else { //* vedo che almeno una riga è compilata completamente	
		if(analite_r>=3){ //* se le righe vuote sono almeno 3 chiedo conferma 
prima di continuare con il submit
			scelta = confirm('Attenzione: risultano non compilate '+analite_r+' 
analite, continuare comunque?');
 
			if(scelta==true){ //* se la scelta è ok continuo con il submit
				return true;
			}
			else {
				return false; //* la scelta è annulla quindi fermo il submit
			}
		}
 
		if(analite_r<3){ //* qui vedo che le righe lasciate vuote sono 
inferiori a 3 quindi continuo con il submit senza fare alcuna richiesta
			return true;
		}
 
	}
}

 TP/BP/Delphi/jscr/&c, FAQ items, links.