evidenziare campi vuoti nel form

  • Creatore Discussione Creatore Discussione LaKanka
  • Data di inizio Data di inizio

LaKanka

Utente Attivo
29 Ago 2008
166
0
0
Ciao a tutti!! Premettendo che javascript lo conosco molto poco vi pongo il mio problema...
Ho un form su cui faccio già un controllo dei campi obbligatori, Codice fiscale, ecc... vi posto la struttura:
HTML:
<form name="rform" method="post" enctype="multipart/form-data" action="registrazione_execute.php" onSubmit="javascript:return control('rform','nome','cognome','email','cemail','pw','cpw','cf','tel','autorizzo');">
Nome <input type="text" name="nome" id="nome" style="width:100%" value="<?php echo $_REQUEST['nome']; ?>">
Cognome <input type="text" name="cognome" id="cognome" style="width:100%" value="<?php echo $_REQUEST['cognome']; ?>">
E-mail <input type="text" name="email" id="email" style="width:100%" value="<?php echo $_REQUEST['email']; ?>">
Conferma e-mail <input type="text" name="cemail" id="cemail" style="width:100%" value="<?php echo $_REQUEST['cemail']; ?>">
Password <input type="password" name="pw" id="pw" style="width:100%" value="<?php echo $_REQUEST['pw']; ?>" onBlur="controllo_pw(this)">
Conferma password <input type="password" name="cpw" id="cpw" style="width:100%" value="<?php echo $_REQUEST['cpw']; ?>">
Codice fiscale <input type="text" name="cf" id="cf" style="width:100%" value="<?php echo $_REQUEST['cf']; ?>" onBlur="ControllaCF(this)">
Telefono <input type="text" name="tel" id="tel" style="width:100%" value="<?php echo $_REQUEST['tel']; ?>">
Confermo di aver letto l'informativa sul trattamento dei dati personali (D.Lgs196/2003) e 
<input type="radio" value="1" name="autorizzo" />Autorizzo
<input name="autorizzo" type="radio"  value="0"  checked="checked"/>Non Autorizzo
<input type="submit" name="task" value="conferma" class="submit"/>
</form>

Lo script che utilizzo è:
HTML:
<script language="Javascript">
function control(form_id,nome,cognome,email,cemail,pw,cpw,cf,tel,autorizzo) {
  var nome = document.forms[form_id].elements[nome].value;
  var cognome = document.forms[form_id].elements[cognome].value;
  var email = document.forms[form_id].elements[email].value;
  var cemail = document.forms[form_id].elements[cemail].value;
  var pw = document.forms[form_id].elements[pw].value;
  var cpw = document.forms[form_id].elements[cpw].value;
  var cf = document.forms[form_id].elements[cf].value;
  var tel = document.forms[form_id].elements[cap].value;
  var bottone = document.forms[form_id].elements[autorizzo];
  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   
   if((nome == '')||(nome == "undefined"))
   { 
   alert('Il campo Nome deve essere compilato!');
     return false;
   }
	else if((cognome == '')||(cognome == "undefined"))
   {
      alert('Il campo Cognome deve essere compilato!');
      return false;
   }
   else if((email == '')||(email == "undefined"))
   {
      alert('Il campo E-mail deve essere compilato!');
      return false;
   }
   else if (reg.test(email) == false) {
      alert('Il campo E-mail non è scritto correttamente');
      return false;
   }
   else if((cemail == '')||(cemail == "undefined"))
   {
      alert('Il campo Conferma e-mail deve essere compilato!');
      return false;
   }
   else if(email != cemail)
   {
      alert('L\' E-mail confermata è diversa da quella inserita!');
      return false;
   }
   else if((pw == '')||(pw == "undefined"))
   {
      alert('Il campo Password deve essere compilato!');
      return false;
   }
   else if((cpw == '')||(cpw == "undefined"))
   {
      alert('Il campo Conferma password deve essere compilato!');
      return false;
   }
   else if(cpw != pw)
   {
      alert('La Password confermata è diversa da quella inserita!');
      return false;
   }
   else if((cf == '')||(cf == "undefined"))
   {
      alert('Il campo Codice Fiscale deve essere compilato!');
      return false;
   }
   else if((tel== '')||(tel== "undefined"))
   {
      alert('Il campo Telefono deve essere compilato!');
      return false;
   }
  
   else  if (bottone[1].checked)
 {
        alert('Devi autorizzare il trattamento dei dati personali!');
      return false;
   }
  return "";
}

function ControllaCF(obj)
{
	var validi, i, s, set1, set2, setpari, setdisp;
	cf = obj.value;
	if( cf == '' )  return false; 
	cf = cf.toUpperCase();
	if( cf.length != 16 ) {
		alert('La lunghezza del codice fiscale non è corretta');
		obj.value="";
		obj.focus();
		return false; }
	validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	for( i = 0; i < 16; i++ ){
		if( validi.indexOf( cf.charAt(i) ) == -1 ) {
		alert('Il codice fiscale contiene un carattere non valido: ')+ cf.charAt(i);
		obj.value="";
		obj.focus();
		return false; }
	}
	set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
	s = 0;
	for( i = 1; i <= 13; i += 2 )
		s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
	for( i = 0; i <= 14; i += 2 )
		s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
	if( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) ) {
	alert('Il codice fiscale non è corretto');
	obj.value="";
	obj.focus();
		return false; }
}
function ControllaPIVA(obj)
{	pi = obj.value;
	if( pi == '' )  return '';
	if( pi.length != 11 ){
		alert('La lunghezza della Partita IVA non è corretta');
		obj.value="";
		obj.focus();
		return false; }
	validi = "0123456789";
	for( i = 0; i < 11; i++ ){
		if( validi.indexOf( pi.charAt(i) ) == -1 ) {
		alert('La Partita IVA contiene un carattere non valido: ')+ pi.charAt(i);
		obj.value="";
		obj.focus();
		return false; }
	}
	s = 0;
	for( i = 0; i <= 9; i += 2 )
		s += pi.charCodeAt(i) - '0'.charCodeAt(0);
	for( i = 1; i <= 9; i += 2 ){
		c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
		if( c > 9 )  c = c - 9;
		s += c;
	}
	if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) ) {
		alert('La Partita IVA non è valida');
		obj.value="";
		obj.focus();
		return false; }
	return '';
}
</SCRIPT>

Vorrei che la funzione control mi evidenziasse il campo che da errore ed ho creato la classe "req2":
.req2 {
background-color: #FFFFC3;
}

Il problema è che riesco ad utilizzarla solo con questa scrittura:
obj.className="req2";
Ma dal form ricavo solo i valori contenuti negli input e non l'oggetto in se... come posso fare???
Qualcuno mi può illuminare???:hammer:
 
Grazie lo stesso.... per dovere di cronaca ho risolto così:

HTML:
if((var_nome == '')||(var_nome == "undefined"))
   { var nome2 = document.forms[form_id].elements[nome];
   	 alert('Il campo Nome deve essere compilato!');
	 nome2.className="req2";
	 return false; 
   }

:D
 

Discussioni simili