Aiuto con mini FORM

T.W.

Nuovo Utente
25 Nov 2012
12
0
0
Ciao ragazzi, questa volta vi disturbo con un piccolo quesito. Ho realizzato un mini FORM con due campi da compilare: uno è il Codice Fiscale (in cui c'è un semplice controllo sul numero di caratteri immesso) e l'altro è l'e-mail, ma l'unico controllo che sono riuscito a realizzare è quello che verifica se il campo è vuoto o non. Mi piacerebbe che controllasse la presenza del carattere @ chiocciolina. Mi aiutate? Grazie! :cool:

HTML:
<script type="text/javascript">
function check() {
	if (document.doc.email.value.length == 0) {
		alert("Compila il campo Posta Elettronica");
		document.doc.email.focus();
		return false;
		}
	if (document.doc.cf.value.length <= 16) {
		alert("Compila il campo Codice Fiscale");
		document.doc.cf.focus();
		return false;
		}
	}
</script>
<form name="modulo" method="post" action="invia.php" accept-charset='utf-8'>
<label for="email">Posta elettronica</label>
<input type="text" id="email" name="email" />
<label for="cf">Codice fiscale</label>
<input type="text" id="cf" name="cf" />
</select>
<input type="submit" name="invia" value="invia" onClick="return check()" />
</form>
 
Ultima modifica di un moderatore:
Ciao Borgo, scusa se rispondo in ritardo. Allora grazie del consiglio, funziona tutto.
Copio qui le modifiche che ho apportato seguendo i tuoi consigli.
Un'ultima richiesta: sapresti come poter far accettare solo i numeri??? Grazie ancora.

if (document.doc.cf.value.length <= 15) {
alert("Compila il campo Codice Fiscale");
document.doc.cf.focus();
return false;
}
if (document.doc.email.value.indexOf("@") == -1 ) {
alert("Compila il campo Posta Elettronica");
document.doc.email.focus();
return false;
}


ciao
dai un occhio qui
https://www.mrw.it/javascript/articoli/verificare-corretta-compilazione-form_68.html
stai attento però che i controlli con js sono facilmente bypassabili, è essnziale un controllo lato server con php
 
Prova cosi

Codice:
if (document.doc.cf.value.length <= 15 || typeof document.doc.cf.value != 'number') {
alert("Compila il campo Codice Fiscale");
document.doc.cf.focus();
return false;
}
 
@nefty
ciao scusa, perchè

Codice:
|| typeof document.doc.cf.value != 'number'

es. il tuo c.f. è NFT...ecc.. quindi non e mai in numero
 
Ciao Borgo, scusa se rispondo in ritardo. Allora grazie del consiglio, funziona tutto.
Copio qui le modifiche che ho apportato seguendo i tuoi consigli.
Un'ultima richiesta: sapresti come poter far accettare solo i numeri??? Grazie ancora.

if (document.doc.cf.value.length <= 15) {
alert("Compila il campo Codice Fiscale");
document.doc.cf.focus();
return false;
}
if (document.doc.email.value.indexOf("@") == -1 ) {
alert("Compila il campo Posta Elettronica");
document.doc.email.focus();
return false;
}


Ciao,


come ha detto borgo, la mail e il codice fiscale sono campi misti.

La mail accetta lettere numeri a altri caratteri . - _

il CF ha una sequenza di 6 lettere 2 numeri 1 lettera 2 numeri 1 lettera 3 numeri 1 lettera

ABCDWD 41 H 25 E 127 E

Usa una RegExp.

Codice:
<script type="text/javascript">
function check() {
	var f = document.modulo;
	
	if ((f.email.value == "") || (f.email.value.charAt(0) == " ")){
		alert("Compila il campo Posta Elettronica");
		f.email.focus();
		return false;
		}
	
	if (!(/^[a-zA-Z0-9\._\-]+@[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$/.test(f.email.value))){
	alert("Campo Posta Elettronica errato");
		f.email.focus();
		f.email.select();
		return false;
		}
	if((f.cf.value == "") || (f.cf.value.charAt(0) == " ")){
		alert("Compila il campo Codice Fiscale");
		f.cf.focus();
		return false;
		}
		if (!(/^[a-zA-Z]{6}[0-9]{2}[a-zA-Z]{1}[0-9]{2}[a-zA-Z]{1}[0-9]{3}[a-zA-Z]{1}$/.test(f.cf.value))){
	    alert("Campo Codice Fiscale errato");
		f.cf.focus();
		f.cf.select();
		return false;
		}
	return true;
	}
</script>
<form name="modulo" method="post" action="invia.php" accept-charset='utf-8'>
<label for="email">Posta elettronica</label>
<input type="text" id="email" name="email" />
<label for="cf">Codice fiscale</label>
<input type="text" id="cf" name="cf" />
</select>
<input type="submit" name="invia" value="invia" onClick="return check()" />
</form>



Valeria.
 
@nefty
ciao scusa, perchè

Codice:
|| typeof document.doc.cf.value != 'number'

es. il tuo c.f. è NFT...ecc.. quindi non e mai in numero

Vero, non avevo fatto caso a ciò ma solo alla richiesta, mea culpa


Comunque non era meglio se il controllo lo faceva direttamente sul server e recuperava gli errori tramite ajax? Faceva prima e si risparmiava di riscrivere i controlli in js
 
ciao
@Nefyt
hai ragione chiedeva anche solo numeri.
se c'è un campo che deve essere solo numerico puo integrare sempre con le regexp aggiungendo gli if a quanto fatto da vale.

counque ribadisco : essnziali controlli lato server
 
@Borgo e Nefyt:
ragazzi grazie per i consigli purtroppo con il sistema indicatomi da voi non funziona assolutamente.
Lascio per il momento la mia soluzione "artigianale" :-D
 
@Vale2

Credo che il "sesso debole" abbia avuto la meglio questa volta :-D
 

Discussioni simili