Newsgroup: it.comp.lang.javascript
Titolo: Il form esegue anche se non dovrebbe....

Ciao a tutti.
Il sottostante form ha 4 script di controllo:
1) per i campi obbligatori
2) per i campi PSW e controllo PSW che devono essere uguali
3) per la legge 675/96, senza il cui check il form non viene processato
4) uno in caso di cliente (checkbox selezionato) bisogna obbligatoriamente
inserire il codice cliente.
Va tutto, tranne se, una volta debitamente compilato, si immettono 2 PSW
differenti, lui processa al posto di mandare una finestrella di allert. Il
fatto strano è che non accade se non si completa debitamente i vari campi,
ma solo quando è tutto compilato e si sbaglia ad immettere la PSW.
Non so proprio come venirne fuori.
Mi sapreste aiutare???
GRAZIE.
________________________________________________________________________
<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) { file://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() { file://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 == '');
}
file://-->
</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 spedite la Visura Camerale
al
              numero di Fax 0332/860781)</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 d ixxxxe
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
e
          la comunicazione dei miei dati da parte d ixxxxxxxxx e delle
Societ&agrave;
          da essa controllate o partecipate. </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

 ha scritto nel messaggio
news:oWqQ6.20629$WT5.7...@news.infostrada.it...

[]

 wrote in message
xDIQ6.4577$HK.3...@news.infostrada.it...
