Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Problema con submit e validazione

    Salve a tutti,
    scusatemi ma sono due giorni che cerco di capire e non ci riesco:

    In una pagina di un sito che stó costruendo ho inserito il seguente script in javascript nell'head:

    Codice PHP:
    <script language="javascript">
          function 
    fncValidator(theForm) {
             var 
    ptrMail = /^([a-zA-Z])+([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
             var 
    strMail document.frmMail.txtFrom.value;
             var 
    strObj document.frmMail.txtObj.value;
             var 
    strBody document.frmMail.txtBody.value;
             if (!
    ptrMail.test(strMail)) {
                 
    alert("The e-Mail address in the 'From' field isn't correct! Please check it and retry.");
                 
    theForm.txtMail.focus();
                 return (
    false);
             };
             if (
    strObj == "") {
                 
    alert("Please fill in the 'Object' field.");
                 
    theForm.txtObj.focus();
                 return (
    false);
             };
             if (
    strBody == "") {
                 
    alert("Please fill in the 'Body' field.");
                 
    theForn.txtBody.focus();
                 return (
    false);
             };
             return (
    true);
          }
        
    </script> 
    In seguito, nella pagina ho inserito il form da validare:

    Codice PHP:
    <form action="/en/contacts.asp" method="POST" name="frmMail" onsubmit="return fncValidator(this);">
    {
    contenuto del form}
    </
    form
    Il fatto é che quando clicco sul pulsante (input type="submit") il codice mi esegue correttamente la validazione, ma sia che ci siano o non ci siano errori di validazione, il submit del form viene comunque eseguito.

    Qualcuno mi sa spiegare dov'é l'errore prima che impazzisca???

    Grazie a tutti per l'aiuto.

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    1) theForn.txtBody....
    una enne al posto di una emme

    2) return (true) va scritto
    return true;

    (analogo per return false


    3) <script language="javascript">
    andrebbe scritto

    <script type="text/javascript">
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    ed anche:
    theForm.txtMail.focus(); invece di: theForm.txtFrom.focus();
    a meno che il campo non si chiami txtMail, in quel caso l'errore &egrave;:
    var strMail = document.frmMail.txtFrom.value; (sbagliato)
    var strMail = document.frmMail.txtMail.value; (giusto)

    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  4. #4
    In effetti mi ero fermato al test del primo campo e visto che mi faceva comunque il submit, non ho vericato gli altri campi e non ho visto gli errori di sintassi.

    Per quanto riguarda la dichiarazione script, mi funziona benissimo (adesso) con language="javascript", c'é un motivo particolare per il quale dovrei usare type="text/javascript"?

    Comunque l'errore principale (quello per cui mi effettuava comunque il submit) sembra essere che le parentesi nei return non servono, tolte quelle funziona come dovrebbe.

    Detto questo e visti gli errori, forse sarebbe meglio se lavorassi un pochino meno e dormissi un pochino di piú!

    Vi ringrazio per l'aiuto che mi avete dato.

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da Neo710
    c'é un motivo particolare per il quale dovrei usare type="text/javascript"?
    è supportato da un numero maggiore di browser rispetto a language=...
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  6. #6
    Concetto afferrato

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.