Newsgroup: it.comp.lang.javascript
Titolo: perchè va?

function privacyCheck(){
        if (document.forms[0].privacy.checked) ;
        else   
            alert("per proseguire devi accettare la politica privacy")
				 return false ;
 
    }
 
 
 
 
<input type="checkbox" name="privacy"   />				
 <input type="SUBMIT" onclick="privacyCheck()" value="Send Form">
 
mi da la finestra di allert, pero "return false" 	non funziona e continua 
l'ivio dei dati della form .
 
 
javascript non lo capisco :(

  <input type="SUBMIT" onclick="privacyCheck()" value="Send Form">
 
"return privacyCheck()"

 return privacyCheck()
 
 
function privacyCheck(){
        if (document.forms[0].privacy.checked) ;
        else   
            alert("per proseguire devi accettare la politica privacy")
				return privacyCheck() ;
 
    }
 
non ho capito, ma cosi non funziona , richiama in continuazione la finestra 
di allert, quando clicco su ok mentre dovrei tornare alla form da flaggare.
 


no..
<input type="SUBMIT" onclick=" return privacyCheck()" value="Send Form">
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
 
www.robyt.eu
 
 

 <input type="SUBMIT" onclick=" return privacyCheck()" value="Send Form">
 
 
ok , funziona.. grazie 
 
Enrico 

 
 
posso chiedervi la differenza concettuale? 
 
grazie 

 e poi .. 
 
come li unisco questi due script? cosi come è non mi lancia validateEmail
in pratica verifica solo se la privacy e flaggata
 
required = new Array("Name", "Email", "Message")
 
//Validation Routines
//##############DO NOT CHANGE FROM HERE##################
var emailregex = /^([a-z0-9]+)([.,_,-]([0-9,a-z,A-Z]+))*@([a-z0-9]+)([.,_,-]
([0-9,a-z,A-Z]+))*\.[a-z]{2,4}$/i
var notgiven = ""
 
//============Check if a field is blank================
function isBlank(s) {
 var len=s.length
 var i
 for(i=0;i<len;++i) {
  if(s.charAt(i)!=" ") return false
 }
 return true
}
 
//================Email Address validation routine=========
function correct_email(str) {
        return emailregex.test(str)
}
 
function validateEmail() {
	if(!correct_email(document.forms[0].Email.value)) {
		alert("l' Email inserita non risulta essere valida")
		document.forms[0].Email.focus()
		document.forms[0].Email.select()
		return false	
	}
	return true
}
 
//==============Check if a field is blank===========
 
function validate(fieldName,fieldValue) {
	if(isBlank(fieldValue)) {
		notgiven += fieldName + ", "	
 }
}
 
 
 
//=Validate fields and send Form if OK or generate proper alert message=====
function validateForm() {
validation = true
for(var i=0; i < required.length; ++i) {
	ele = eval("document.forms[0]." + required[i])
	 validate(
ele.name
, ele.value)
 
}
 
if (notgiven != "") {
	notgiven += " non possono essere lasciati vuoti."
	alert(notgiven)
	notgiven = ""	
	validation = false
}
if (!validateEmail()) {
	validation = false
}
if (!validation) {
	return false
}
else document.forms[0].submit()
}
////////
 
function privacyCheck(){
 if (document.forms[0].privacy.checked)
 return  true ;
 
        else   
            alert("per proseguire devi accettare la politica privacy")
	 return  false ;
 }
 
 
<form action = "invia.php" method ="post" ONSUBMIT="return validateForm()">
<input type="checkbox" name="privacy"   />   


 posso chiedervi la differenza concettuale?
 
Se restituisce false click blocca la propagazione degli eventi (e quindi 
il link non viene aperto o il submit non viene eseguito); ma devi appunto 
restituirlo (return false, o return function, dove la function 
restituisce true/false). Senza il return il risultato di ritorno viene 
ignorato.
 
p.s. esiste anche <form onsubmit="return privacyCheck()"...> se ti 
interessa, così se hai il submit in più posti puoi mettere il controllo 
in un posto solo (nella dichiarazione della form)

 <input type="SUBMIT" onclick=" return privacyCheck()" value="Send Form">
 
Qua basta onsubmit, togli onclick che altrimenti non ci si capisce più 
nulla.

 
 
grazie .
:)

 nulla.
 
se metto 
	echo "<form action = \"$formprocessor\" method = \"post\" 
ONSUBMIT=\" return privacyCheck();return validateForm()\">\n";
 
funziona solo privasyCheck
 
se metto:
 
 	echo "<form action = \"$formprocessor\" method = \"post\" 
ONSUBMIT=\" return validateForm();return privacyCheck()\">\n";
 
funziona solo validateForm

 funziona solo privasyCheck
 
Per forza, esegue privacyCheck() e restituisce il valore di ritorno, la 
seconda parte non viene mai eseguita ...
 
Devi fare un onsubmit (minuscolo) = "return validateForm()", poi dalla 
validateForm() fai tutti i check che ti servono e restituisci true/false.
 
Quindi la privacyCheck() la eseguirai dentro la validateForm(), del tipo
 if(!privacyCheck())
	return false;

 validateForm() fai tutti i check che ti servono e restituisci true/false.
 
c'è una differenza di sintassi tra minuscolo e maiuscolo o solo perchè è 
meglio scrivere sempre in minuscolo?
 
grazie 
Enrico 

 meglio scrivere sempre in minuscolo?
 
IMHO meglio scrivere attributi in minuscolo, per la validazione dipende 
dal doctype.

  return false;}
 
Se `validateForm` non ha senso come funzione a sé stante, va benissimo
richiamare `privacyCheck` al suo interno.
 

 il link non viene aperto o il submit non viene eseguito);
 
Per essere piú preciso, il `return false` blocca il comportamento di
default e non la propagazione degli eventi. Ovvero, uscire da una
funzione usata come listener con un `return false` è equivalente a
`event.preventDefault()` e non a `event.stopPropagation()` – tranne in
jQuery, che fa entrambe le cose.
 

> 
 
 
per gli allegati guardate qui :
https://groups.google.com/forum/?fromgroups=#!topic/it.comp.lang.javascript/cS-
 
ZCiQwyYo
 
l'allegato c'è 
 
non so dirvi perchè non lo vedete, ma è palese che c'è 
 
ciao 

 non so dirvi perchè non lo vedete, ma è palese che c'è 
 
Non sulla maggior parte dei news server, ed è per questo che né io né
Cristiano abbiamo ricevuto l'allegato; e ti ho spiegato il motivo: nei
newsgroup non binari ma di discussione come questo, gli allegati non
sono generalmente accettati. Alcuni news server rifiutano il messaggio
che li contiene in toto, altri semplicemente li rimuovono.