Newsgroup: it.comp.lang.javascript
Titolo: Controllo campi...sull'errore il form viene processato?!

Non capisco perchč,
ma dopo aver compilato tutti i campi e lasciato per ultimo quello della
password e del controllo password, e erroneamente digitato, mi appare
giustamente un segnale di errore di digitazione. Cliccando sulla finestra ok
dopo averla letta, il form viene processato erroneamente...PERCHE', io
voglio che non venga processato sull'errore. Dovrei ridigitare PSW e
controllo PSW e alla perfetta coincidenza dovrebbe partire.
Mi riuscite ad aiutare?
____________________________________________________________________________
____
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript">
<!--
<!--
function tmt_compareField(f1,f2,rule,errorMsg){
	var myErr = "";
 
if(eval("MM_findObj('"+f1+"').value"+rule+"MM_findObj('"+f2+"').value")){
		alert(unescape(errorMsg));myErr += 'errorMsg';}
	document.MM_returnValue = (myErr == "");
}
function ver(){
 if(document.forms[0].Autorizzo675.checked==false){
  alert('Il form non puň essere processato. Spuntare il check box per il
trattamento dei dati.')
  return false;
 }
}
function cod() {
if (document.form_registra.Cliente[0].checked==true &
document.form_registra.Codice.value == "") {
alert("Se sei giŕ cliente, devi inserire il tuo codice identificativo.");
return false;
}
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document;
if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++)
x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++)
x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2];
val=MM_findObj(args[i]);
    if (val) { nm=
val.name
; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an
e-mail address.\n';
      } else if (test!='R') {
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (val<min || max<val) errors+='- '+nm+' must contain a number
between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is
required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form method="post"
action="/versione_4/intranet/pag_registrazione_send_alen.asp"
name="form_registra"
onSubmit="tmt_compareField('Password','CheckPassword','!=','The%20password%2
0didn%27t%20match');MM_validateForm('Nome','','R','Cognome','','R','Posizion
e','','R','RagioneSociale','','R','Indirizzo','','R','Cap','','RisNum','Citt
a','','R','Provincia','','R','Telefono','','RisNum','PartitaIVA','','R','EMa
il','','RisEmail','Password','','R');return document.MM_returnValue">
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr> 
      <td valign="top" width="6"><img src="../images/nulla.gif" width="6"
height="1"></td>
      <td valign="top">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr> 
            <td width="150"><b>Nome</b></td>
            <td> 
              <input type="text" name="Nome" size="47">
            </td>
          </tr>
          <tr> 
            <td width="150"><b>Cognome</b></td>
            <td> 
              <input type="text" name="Cognome" size="47">
            </td>
          </tr>
          <tr> 
            <td width="150"><b>Posizione</b></td>
            <td> 
              <input type="text" name="Posizione" size="47">
            </td>
          </tr>
          <tr> 
            <td width="150"><b>Azienda</b></td>
            <td> 
              <input type="text" name="RagioneSociale" size="47">
            </td>
          </tr>
          <tr> 
            <td width="150"><b>Indirizzo</b></td>
            <td> 
              <input type="text" name="Indirizzo" size="47">
            </td>
          </tr>
          <tr> 
            <td width="150"><b>C.a.p.</b></td>
            <td> 
              <input type="text" name="Cap" size="15" maxlength="5">
            </td>
          </tr>
          <tr> 
            <td width="150"><b>Citt&agrave;</b></td>
            <td> 
              <input type="text" name="Citta" size="47">
            </td>
          </tr>
          <tr> 
            <td width="150"><b>Provincia</b></td>
            <td> 
              <input type="text" name="Provincia" size="5" maxlength="2">
            </td>
          </tr>
          <tr> 
            <td width="150"><b>Telefono</b></td>
            <td> 
              <input type="text" name="Telefono" size="47">
            </td>
          </tr>
          <tr> 
            <td width="150">Fax</td>
            <td> 
              <input type="text" name="Fax" size="47">
            </td>
          </tr>
          <tr> 
            <td width="150">Gi&agrave; cliente <b> </b></td>
            <td> 
              <input type="radio" name="Cliente" value="1">
              Si &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
              <input type="radio" name="Cliente" value="0" checked>
              No </td>
          </tr>
          <tr> 
            <td width="150">Codice </td>
            <td> 
              <input type="text" name="Codice" size="47">
            </td>
          </tr>
          <tr> 
            <td width="150">&nbsp;</td>
            <td>( Il codice si trova sulle fatture. Inserendo la
registrazione 
              verr&agrave; effettuata immediatamente.) </td>
          </tr>
          <tr> 
            <td width="150"><b>Partita IVA</b></td>
            <td> 
              <input type="text" name="PartitaIVA" size="47">
            </td>
          </tr>
          <tr> 
            <td width="150">&nbsp;</td>
            <td>(Se non siete gi&agrave; Clienti)</td>
          </tr>
          <tr> 
            <td width="150"><b>E-mail</b></td>
            <td> 
              <input type="text" name="EMail" size="47">
            </td>
          </tr>
          <tr> 
            <td width="150"><b>Password</b></td>
            <td> 
              <input type="password" name="Password" size="47" value="">
            </td>
          </tr>
          <tr> 
            <td width="150"><b>Controllo Password</b></td>
            <td> 
              <input type="password" name="CheckPassword" size="47">
            </td>
          </tr>
        </table>
        <table width="100%" border="0" cellspacing="0" cellpadding="0"
height="18">
          <tr> 
            <td><img src="../images/nulla.gif" width="1" height="18"></td>
          </tr>
        </table>
      </td>
      <td valign="top" width="6">&nbsp;</td>
    </tr>
  </table>
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr> 
      <td valign="top" width="6"><img src="../images/nulla.gif" width="6"
height="1"></td>
      <td valign="top"><b>Informativa ai sensi dell'art. 10 della Legge
675/96</b><br>
        I dati personali acquisiti saranno utilizzati da parte delle
Societ&agrave; 
        da essa controllate o partecipate, anche con l'ausilio di mezzi
elettronici. 
        Ai sensi dell'art.13 della Legge 675/96, ha il diritto di accedere
ai 
        propri dati chiedendone la correzione, l'integrazione e,
ricorrendone 
        gli estremi, la cancellazione o il blocco. 
        <p> 
          <input type="checkbox" name="Autorizzo675" value="checkbox"
checked>
          Preso atto dell'informativa di cui sopra, autorizzo il
trattamento</p>
        <input type="submit" name="Spedisci" value="Spedisci"
onMouseDown="ver()" onClick="return cod()">
        <input type="reset" name="Reset" value="Reset">
      </td>
      <td valign="top" width="6">&nbsp;</td>
    </tr>
  </table>
  </form>
 </body>
 </html>
________________________________________________________
Alen Cappelletti
MARCOM
-- 
Posted from [194.185.54.9] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Se non vuoi processare il form dovrebbe bastare mettere "return=false" al
termine dell'onsubmit

return false (l'= non c'entra nulla)

 ha scritto nel
messaggio news:85D6EB04731FD511BF2800306E01F45D013039@VA01SNT009...
Non capisco perchč,
ma dopo aver compilato tutti i campi e lasciato per ultimo quello della
password e del controllo password, e erroneamente digitato, mi appare
giustamente un segnale di errore di digitazione. Cliccando sulla
finestra ok
dopo averla letta, il form viene processato erroneamente...PERCHE', io
voglio che non venga processato sull'errore. Dovrei ridigitare PSW e
controllo PSW e alla perfetta coincidenza dovrebbe partire.
Mi riuscite ad aiutare?
;-) non usare programmi che fanno brutto codice ;-)
Il blocco dell'invio avviene sul controllo della variabile
MM_returnValue;
nel caso dei campi tutti compilati ma con pass differenti:
-la prima funzione controlla il pass e valorizza a false
-la seconda controlla la compilazione e valorizza a true
risultato true;
se sposti le due funzioni mantieni lo stesso problema se le pass sono
corrette e un campo non e' compilato.
Una soluzione:
valorizza a true la variabile ogni volta che chiami le funzioni di
controllo e condizioni le valorizzazioni all'interno delle funzioni:
------------
onSubmit="document.MM_returnValue=true;tmt_compareField('Password','C...
......
----------------------
function tmt_compareField(f1,f2,rule,errorMsg){
........................
if (MM_returnValue==true) document.MM_returnValue = (myErr == "");
}
.........
function MM_validateForm() { // v4.
.........
if (MM_returnValue==true) document.MM_returnValue = (errors == '');
}
-------------------
In questo modo se una delle due funzioni ha valorizzato la variabile a
false l'altra non fa modifiche.
Saluti, Paolo