Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Controllo form

  1. #1

    Controllo form

    Ho un form che invia i dati ad una popup. Avrei bisogno che prima dell'invio venisse controllato che nel campo email sia stato inserito qualche cosa e che questo qualche cosa sia formalmente corretto. Ho scritto questo:

    <script language="JavaScript">
    <!--
    function checkForm (form){

    if (form.email.value == "") {
    alert("Inserire l'indirizzo del mittente completo.")
    form.email.focus();
    return false}

    var EmailAddr = form.email.value;
    var Filtro = new RegExp("^[a-zA-Z0-9_.-]{1,}@[a-zA-Z0-9\-]{2,}[.][a-zA-Z0-9]{2,}$");
    if (!Filtro.test(EmailAddr)) {
    alert("Controlla l'indirizzo del mittente inserito");
    form.email.focus();
    return false;
    }
    }

    function pagina(par){
    window.open("newsletter.php?email="+par,"","width= 400,height=200");
    return false;
    }
    -->
    </script>

    <form action="newsletter.php" method="get" onsubmit="return false" name="mailing" id="mailing">
    <input type="text" name="email" width="60" id="email">

    <button onclick="javascriptagina(email.value);"> Invia </button>
    </form>
    In questo modo il form passa correttamente i parametri alla popup ma non so come fargli prima eseguire la funzione checkForm prima di inviare ed aprire la popup. Mi sapete aiutare? Grazie

  2. #2
    up

  3. #3
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Note: leggi il regolamento. L'uso dei tag code o php è sempre gradito!

    Ho leggermente modificato qualcosina.... spero ti vada bene
    Codice PHP:
    <script language="JavaScript">
        function 
    checkForm (form){
            if (
    form.email.value == "") {
                
    alert("Inserire l'indirizzo del mittente completo.");
                
    form.email.focus();
                return 
    false;
            }

            var 
    EmailAddr form.email.value;
            var 
    Filtro = new RegExp("^[a-zA-Z0-9_.-]{1,}@[a-zA-Z0-9\-]{2,}[.][a-zA-Z0-9]{2,}$");
            if (!
    Filtro.test(EmailAddr)) {
                
    alert("Controlla l'indirizzo del mittente inserito");
                
    form.email.focus();
                return 
    false;
            }
            return 
    true;
        }

        function 
    pagina(par){
            if (
    checkForm(document.mailing))
            {
                
    window.open("newsletter.php?email="+par,"","width=400,height=200");
            }
            return 
    false;
        }
    </script> 
    Codice PHP:
    <form action="newsletter.php" method="get" onsubmit="return false" name="mailing" id="mailing">
        <
    input type="text" name="email" width="60" id="email">

        <
    button onclick="javascript:pagina(email.value);"Invia </button>
    </
    form
    ciao!
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  4. #4
    Scusate per non aver usato i tag code e grazie mille per la risposta con cui ho risolto

  5. #5
    Rettifico:
    qualsiasi cosa io inserisca nel campo email lo script non ne legge il valore per cui mi restituisce
    codice:
    form.email is undefined

  6. #6
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    codice:
    <html>
    <head>
    <script language="JavaScript">
        function checkForm (form){
            if (form.email.value == "") {
                alert("Inserire l'indirizzo del mittente completo.");
                form.email.focus();
                return false;
            }
    
            var EmailAddr = form.email.value;
            var Filtro = new RegExp("^[a-zA-Z0-9_.-]{1,}@[a-zA-Z0-9-]{2,}[.][a-zA-Z0-9]{2,}$");
            if (!Filtro.test(EmailAddr)) {
                alert("Controlla l'indirizzo del mittente inserito");
                form.email.focus();
                return false;
            }
            return true;
        }
    
        function pagina(par){
            if (checkForm(document.mailing))
            {
                window.open("newsletter.php?email="+par,"","width=400,height=200");
            }
            return false;
        }
    </script>
    <head>
    <body>
    	<form action="newsletter.php" method="get" onsubmit="return false" name="mailing" id="mailing">
    			<input type="text" name="email" width="60" id="email">
    
    			<button onclick="javascript:pagina(email.value);"> Invia </button>
    	</form>
    </body>
    </html>
    Fai solo attenzione che sia

    onclick="javascript..."

    Senza - in mezzo.

    Questa pagina è stata testata con successo su firefox. Mi sembra evidente che hai problemi da qualche altra parte.

    A conferma di quanto dico, Firefox risponde con una popup con questo messaggio di errore

    Firefox non trova il file /C:/.../newsletter.php?email=a.n@alice.it.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  7. #7
    Hai perfettamente ragione, c'era un po' di casino in giro per la pagina con nomi uguali per diversi controlli. Ora funziona tutto alla grande. Grazie di nuovo

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.