Newsgroup: it.comp.lang.javascript
Titolo: Controllare una form prima di spedirla?

Scusate la domanda che forse è banale ma io ho costruito un questionario e
ho creato un javascript che mi controlla i vari campi della form il problema
è che non so come fare in modo che quando clicco sul pulsante spedisci (a
cui e collegato il submit che mi rimanda al cgi) mi faccia partire prima il
controllo e se è andato a buon fine mi esegua il submit.
Premetto che non uso un cgi creato da me ma utilizzo quello presente sul
server che mi da lo spazio web (freeservers)
Grazie

Eccoti un esempio:
<script language="Javascript">
<!--
 // Funzione di convalida dei dati
 function checkInfo(form)
 {
  var isOk=true;
  var oldName;
  if(form.nome.value!="pippo")
  {
   oldName=form.nome.value;
   isOk=false;
   form.nome.value="SBAGLIATO!";
  }
  if(form.pass.value!="bau")
  {
   isOk=false;
   form.pass.value="";
  }
  if(isOk)
   form.submit();
  else
  {
   window.status="Mmm... " + oldName + " non e' un bel nome...";
   alert("Hai cannato!");
  }
 }
//-->
</script>
Spero ti possa chiarire le idee, al di la' del caso specifico...
Ciao!
******************************************************************
Marco Dallera
http://marchicchio.freeweb.org
ICQ# 52536178
******************************************************************

Grazie di avermi risposto ho provato ad aggiornare la mia function però
quando inserisco un dato giusto e quindi entra nella if e mi esegue
form.submit() mi da questo errore
Proprietà o metodo non supportati
Cosa significa?
Ti metto un esempio del mio questionario così puoi vedere come ho fatto il
controllo e il resto:
<html>
<!--  Created with the CoffeeCup HTML Editor  -->
<!--         
http://www.coffeecup.com
         -->
<!--       Brewed on 27/11/00 20.19.48        -->
<head>
  <title></title>
</head>
<body>
<script Language="JavaScript">
function prova(theForm)
{
  var risultato=false;
  var risultato = true;
  var checkOK = "0123456789-";
  var checkStr = theForm.testo.value;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    allNum += ch;
  }
  if (!allValid)
  {
    alert("Inserire solo numeri \"Chilometri\".");
    theForm.testo.focus();
    risultato = false;
 return (false);
  }
  if (risultato == true)
  {
   theForm.Submit();
  }
}
</script>
<form method="POST" action="/cgi-bin/cgiemail" name="matteo">
  <INPUT type="hidden" name="cgiemail_message">
  <input type="hidden" name="cgiemail_subject" value="Richiesta
prenotazione">
  <input type="hidden" name="cgiemail_username" value="
mat...@inwind.it
">
  <input type="hidden" name="cgiemail_invalid" value="Hai inserito
un'indirizzo non valido riprova">
  <input type="text" name="testo" size="10">
  <input type="button" name="pulsante" value="prova"
onclick="prova(matteo)">
   E-mail: <INPUT TYPE="text" NAME="email" SIZE=15>
</form>
</body>
</html>
Se puoi dirmi qualcosa te ne sarei grato
Ciao

    theForm.Submit();
                    ^^
theForm.submit()
Saluti, Paolo

  }
--
~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~
Gabriele Bertolucci  
pbe...@libero.it
~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~