Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Tasto invio e submit form.... argh

    Ho fatto una ricerca, ma non ho provato niente in proposito.

    Ho una formetta con un semplice controllo sulla scringa della mail e il successivo invio... se uno clicca il tasto invia va tutto bene... gli script lavorano tranquillamente, se invece, scrivo una cosa senza senso e spingo "Invio" da tastiera... gli script vengono ignorati...

    Segue codice:


    <script language="JavaScript" type="text/javascript">

    function Registra(){

    var campo;
    var mail=document.newsletter.mail.value;
    var errore='';

    if (mail==''){
    errore=errore+'Mail\n';
    campo=document.newsletter.mail;
    }
    // -----------------------------------------
    // stringa per controllo
    // -----------------------------------------
    if (errore!=''){
    alert("Non hai inserito l'indirizzo "+errore);
    campo.focus();
    return true;
    }else{
    if (ValidateMail(document.newsletter.mail.value) == false){
    alert ("L'indirizzo Mail non è corretto!");
    document.newsletter.mail.focus();
    }else{
    document.newsletter.submit()
    }
    }
    }
    </script>


    <form action="registra.asp" method="post" name="newsletter">
    <input type="text" size="20" name="mail"/> <input type="button" name="Go!" value="go!" onClick="Registra();"/>
    </form>
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  2. #2
    E' giusto, tu hai fatto in modo di eseguire il controllo quando viene premuto il tasto submit, quindi niente pressione=niente controlli.

    Prova così:
    codice:
    <form action="registra.asp" method="post" name="newsletter" onSubmit="return registra()"> 
    <input type="text" size="20" name="mail"/> 
    <input type="submit" name="Go!" value="go!"/>
    xxx

  3. #3
    :quote: No, purtroppo non funziona...
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  4. #4
    Mi sono perso nei meandri della tua funzione, mi potresti dire per favore che controlli devi fare e in che ordine?

    Da quello che ho capito io devi controllare:
    - che abbia inserito una mail;
    - che la mail sia valida;

    Altro?
    xxx

  5. #5
    Prova anche a modificare la tua funzione così:
    codice:
    <script language="JavaScript" type="text/javascript"> 
    
    function Registra()
    { 
       var campo; 
       var mail=document.newsletter.mail.value; 
       var errore=""; 
       
       if (mail=="") 
          {
           errore=errore+"Non hai inserito l\'e-mail\n";
          }
       if (ValidateMail(mail) == false) //Ovviamente la funzione validate mail deve gia esistere
          {
           errore=errore+"L\'indirizzo Mail non è corretto!";
          }
       if (errore!="")
          {
          alert(errore);
          return false;
          document.newsletter.mail.focus();
          }
       else
          {
          return true;
          }
    }
    </script>
    xxx

  6. #6
    Mannaggia. Niente. Come hai capito (dalla riscrittura della funzione) devo prima controllare che l'utente abbia immesso qualche valore nell'input, e poi la correttezza della mail (un'altra funzione che semplicemente richiamo ma che nulla a che fare con il submit).

    Il problema e' che se l'utente preme invio e salta validatemail si inscrive con una mail del tipo "hgfkuyfy" perche' inganna anche il controllo lato server!

    Ora ho messo un'altra funzione, che fa direttamente il submit, quindi se l'utente preme invio la form non lavora... ma e' una soluzione poco accessibile (e ho costruito tutto il sito su principi opposti!).

    Grazie in ogni caso.
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  7. #7
    Scusa ma perché non fai anche il controllo di validità della mail direttamente dentro la stessa funzione? Si tratta di aggiungere al max un paio di righe.
    Il problema e' che se l'utente preme invio e salta validatemail si inscrive con una mail del tipo "hgfkuyfy" perche' inganna anche il controllo lato server!
    In questo caso allora il controllo lato server (dopo che il form è stato inviato) è fatto male, in che linguaggio è?
    xxx

  8. #8
    In questo caso allora il controllo lato server (dopo che il form è stato inviato) è fatto male, in che linguaggio è?
    ASP, ma lato server controllo solo che il campo sia pieno. E' un controllo secondario per raccogliere quegli utenti magari con browser incompatibili con il mio JS e aiutarli a capire come iscriversi correttamente.

    Questa, invece, fa quello che dico io... ma non indica che il campo e' vuoto, ne' riporta al campo non compilato :-(

    function Registra(mode){
    if(mode == "iscrivimi"){
    if (ValidateMail(document.news.mail.value) == true){
    document.news.action = "grazie.asp";
    document.news.stato.value = "1";
    document.news.submit();
    }else{
    alert ("Non hai inserito un indirizzo E-mail valido!");
    document.news.mail.value = "";
    }
    }
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  9. #9
    I controlli ti conviene eseguirli sia lato client (per comodità dell'utente che non deve vedersi ricaricare la pagina se ha sbagliato a scrivere qualcosa) sia lato server perché il controllo lato client può essere eluso (ex disattivando il js)
    Potresti dirmi precisamente come fai il controllo sul server?
    Io intanto vedo di aggiustare la function di prima per le tue esigenze.
    xxx

  10. #10
    Beh, lato server e' solo un controllo sulla presenza di caratteri nel campo.
    <%
    errore = false
    nome = Trim(Request.Form("email"))
    ' controllo che ci sia qualcosa
    If Len(email) = 0 Then
    errore = True
    Response.Write "<h1>Il campo Email è obbligatorio!</h1>"
    End If
    ' se tutto ok registro i dati
    If not errore then
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

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 © 2025 vBulletin Solutions, Inc. All rights reserved.