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

    Form "contatta"

    Salve a tutti,mi scuso in anticipo se sto riproponendo una domanda a cui già si era data soluzione in precedenza,ma durante la mia ricerca non ho trovato nulla che esaurisse a pieno la mia richiesta.

    Dunque,il mio problema è il seguente: Premettendo che di Javascript,se escludiamo le nozioni prettamente teoriche,ne so poco e niente, mi servirebbe per un sito - che dovrò presentare per un progetto - un form che contenga i seguenti punti:

    nome e cognome, indirizzo, numero telefonico, e-mail ed un messaggio in un’area di testo (textarea). Prima di consentire l’invio della form si deve controllare che tutti i campi siano pieni, che i campi numerici (ad es. n. civico e n. telefono) contengano solo numeri, che il formato della e-mail sia corretto e bisogna contare il numero di caratteri inseriti nel campo testo in modo che non superi i 200, mostrando quanti ne restano.


    Il mio problema maggiore riguarda soprattutto l'ultima parte,quella in cui si devono contare i caratteri rimanenti nell'area di testo.
    Sapreste indicarmi come fare?

    Grazie in anticipo

  2. #2
    Ciao,
    per il conteggio dei caratteri puoi provare a dare un'occhiata qui:

    http://forum.html.it/forum/showthrea...4#post13204584

    le altre sono cose già trattate migliaia di volte, prova a cercare un po' meglio e se proprio non riesci riscrivi.

    Comunque, in linea di massima, devi gestire l'evento onclick nel pulsante del form in modo che al click venga eseguita una function javascript che fa i controlli ed esce con return false se trova un errore. Il return false serve a bloccare l'esecuzione del submit.

    Qualcosa del genere:

    codice:
    <head>
    
    <script type="text/javascript">
       function controlla() {
          if (document.getElementById('nome') = "") {
             alert ("devi indicare il nome");
             return false;
          }
          if (NaN(document.getElementById('telefono')) {
             alert ("il telefono deve essere numerico");
             return false;
          }
       
          eccetera
    
       }
    </script>
    
    </head>
    
    <body>
    ....
    <input type="text" id="nome">
    <input type="text" id="telefono">
    ....
    <input type="submit" onclick="controlla()">
    
    ....
    
    </body>
    L'ho scritto in velocità e non l'ho provato quindi è facile che ci sia qualche errore ma grosso modo è così.

    Per il controllo della mail devi solo aggiungere un'ulteriore if nella function, simile alle due che ti ho indicato, ma utilizzando una regular expression che non provo neanche a scriverti perché è una complicatissima stringa di caratteri speciali che trovi in rete già pronta.

    bye
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  3. #3
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866
    funge.

    codice:
    	<form method="POST" action="contatto.asp" onSubmit="return checkForm(this);">
    <script type="text/JavaScript">
    <!--
    function checkForm(f){
    var Nome = f.nome.value;
    var Cognome = f.cognome.value;
    var Citta = f.citta.value;
    var Cap = f.cap.value;
    var Indirizzo = f.indirizzo.value;
    var Email = f.email.value;
    var Testo = f.testo.value;
    var Privacy = f.privacy;
    
    if(Nome == ""){
    alert("Inserire il nome");
    f.nome.focus();
    f.nome.style.border="1px dashed #de1d80";
    return false;
    }
    f.nome.style.border="1px solid #6fa5c8";
    if(Cognome == ""){
    alert("Inserire il cognome");
    f.cognome.focus();
    f.cognome.style.border="1px dashed #de1d80";
    return false;
    }
    f.cognome.style.border="1px solid #6fa5c8";
    if(Citta == ""){
    alert("Inserire la città");
    f.citta.focus();
    f.citta.style.border="1px dashed #de1d80";
    return false;
    }
    f.citta.style.border="1px solid #6fa5c8";
    if(Cap == ""){
    alert("Inserire il CAP");
    f.cap.focus();
    f.cap.style.border="1px dashed #de1d80";
    return false;
    }
    f.cap.style.border="1px solid #6fa5c8";
    if(Indirizzo == ""){
    alert("Inserire l'indirizzo");
    f.indirizzo.focus();
    f.indirizzo.style.border="1px dashed #de1d80";
    return false;
    }
    f.indirizzo.style.border="1px solid #6fa5c8";
    if(Email == ""){
    alert("Inserire l'indirizzo email completo");
    f.email.focus();
    f.email.style.border="1px dashed #de1d80";
    return false;
    }
    f.email.style.border="1px solid #6fa5c8";
    if(!Email.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)){
    alert("Controlla l'indirizzo di e-mail inserito");
    f.email.focus();
    f.email.style.border="1px dashed #de1d80";
    return false;
    }
    f.email.style.border="1px solid #6fa5c8";
    if(Testo == ""){
    alert("Inserire il messaggio");
    f.testo.focus();
    f.testo.style.border="1px dashed #de1d80";
    return false;
    }
    f.testo.style.border="1px solid #6fa5c8";
    if(!Privacy.checked){
    alert("Devi accettare le regole del d.l. n.196/2003");
    return false;
    }
    }
    // -->
    </script>

  4. #4
    Grazie per le risposte tempestive e scusate il ritardo col quale mi rifaccio viva,stavo cercando di far funzionare il tutto senza subissarvi di domande inutili.
    Ci sono riuscita solo in parte.
    Dunque, ho preso lo script che jet mi ha fornito,l'ho modificato per soddisfare le mie esigenze,ma non riesco a fare funzionare un paio di cose: Quando provo ad inviare la form,non mi segnala che i campi sono vuoti o che ho inserito caratteri errati. Altra cosa, il tutto non sarà hostato su di un dominio,so già (credo) che dovrei utilizzare
    codice:
    <form action="javascript:window.location
    ma non mi riesce ugualmente vi posto lo script con le mie modifiche,così vediamo dove ho sbagliato :

    <script type="text/JavaScript">
    </script>
    e quello che ho messo nel body :

    <form action="javascript:window.location=theurl;" method="get" onSubmit="return check_it();"> <label for="Nome">Nome:</label> <input type="text" id="Nome" name="nome" size="20" /> <label for="Cognome">Cognome:</label> <input type="text" id="Cognome" name="cognome" size="20" />
    <label for="Indirizzo">Indirizzo:</label> <input type="text" id="Indirizzo" name="Indirizzo" size="20" /> <label for="Civico">N.Civico:</label> <inputu type="text" id="Civico" name="civico" size="20" />
    <label for="Telefono">Telefono:</label> <input type="text" id="Telefono" name="telefono" size="20" />
    <label for="Email">Indirizzo e-mail:</label> <input type="text" id="Email" name="email" size="20" />
    <textarea onkeyup="document.getElementById('rimanenti').inne rHTML='caratteri rimanenti: '+(200-this.value.length)"></textarea> <span id="rimanenti"></span>
    <input type="submit" value="Invia" /> <input type="reset" value="Cancella" /> </form>
    Grazie ancora per la pazienza

    P.s non sono riuscita ad inserire il codice in modo che fosse più visibile anche usando code il risultato non era come quello nei vostri post :/ Scusate.

  5. #5

    redirect url dopo validazione campi form

    Premetto che ho cercato sia sul sito che sul forum e non ho trovato nessuna risposta al mio problema.
    La questione è questa.

    Dovrei fare in modo che ,dopo l'avvenuta convalida di tutti i campi della form,cliccando sul tasto invia si viene reindirizzati in una pagina di ringraziamento.

    Nel body ho scritto il seguente codice :

    codice:
    <form name="commento" action="javascript:window.location=('index.html')" method="get" onSubmit="return checkForm(this);" enctype="text/plain">
    e
    codice:
    <input type="submit" value="Invia" onclick="window.location.href=('index.html')"/>

    Solo che così facendo la pagina viene automaticamente indirizzata in un'altra pagina,senza controllare che prima i campi siano stati completati.

    Come posso risolvere questo problema?

    Grazie in anticipo

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non mi sembra il caso di aprire un'altra discussione per proseguire il discorso... le unisco
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.