Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. JavaScript e controllo dati form HTML. Dove sbaglio?
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • M
      marcsellier User Attivo • ultima modifica di

      JavaScript e controllo dati form HTML. Dove sbaglio?

      Ciao ragazzi 🙂

      Ho realizzato un classico form HTML che chiede alcuni dati all'utente.
      Ho poi messo un controllo in JavaScript per verificare che tutti i campi richiesti vangano compilati.

      Il problema è che questo script funziona solo in parte: JS mi visualizza un alert se il campo non è stato compilato, ma il form html continua comunque ad andare avanti e nonostante il messaggio di errore si viene reindirizzati alla pagina presente in "action".

      Dove sbaglio?

      Eccovi il codice HTML:

      
      <form name="iscrizione" id="form_iscrizione" method="post" onsubmit="controllo()" action="subscribe.php">
      [............]
      <td align="left">
      <input type="submit" name="Submit" value="Registrati" >
      </td>
      </form>
      
      

      ...e questo è il codice JS (incluso ovviamente nella stessa pagina):

      
      <script language="javascript">
      function controllo() {
      if (nome.value == "")
                  {
             alert ("Tutti i campi devono essere compilati");
             document.forms[form_iscrizione].elements[campo_nome].focus();
             return false;
            }
         else {
         return true;
         }
      }
      </script>
      
      

      Il codice JS l'ho messo subito dopo la chiusura del FORM. Ho provato a spostarlo anche tra gli HEAD ma non cambia nulla...

      Qualcuno sa dirmi dove sbaglio?
      Riepilogando, l'invio dei dati del FORM deve essere interrotto se uno dei campi è vuoto (in questo caso ho specificato solo il campo "nome").
      Ogni idea è ben accetta :wink3:

      Grazie, ciao :ciauz:

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • marcocarrieri
        marcocarrieri ModSenior • ultima modifica di

        Prova a cambiare queste righe.
        [PHP]
        <form name="iscrizione" id="form_iscrizione" method="post" action="subscribe.php">[/PHP]

        [php]<input type="button" onclick="controllo()" name="Submit" value="Registrati" >[/php][php]else
        {
        document.forms["form_iscrizione"].submit();
        }[/php]Purtroppo non posso testarlo.

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • M
          marcsellier User Attivo • ultima modifica di

          Grazie milleeeeeeeeeeeee!!!!!!!! :yuppi: 😄 :lol:

          Finalmente dopo un'intera mattinata a sbattere la testa ci sono riuscito grazie a teeeee :arrabbiato: :yuppi:

          Grazie ancora!!:bigsmile:

          Ciao ciao :gthi:

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • marcocarrieri
            marcocarrieri ModSenior • ultima modifica di

            Aspetta a cantare vittoria. 🙂
            Io non lo ho testato su Firefox e Internet Explorer. 🙂

            Provalo su tutti e due per sicurezza.

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • M
              marcsellier User Attivo • ultima modifica di

              @marcocarrieri said:

              Aspetta a cantare vittoria. 🙂
              Io non lo ho testato su Firefox e Internet Explorer. 🙂

              :(): Ho appena testato su IE e non funziona!! 😢

              Ma come devo fare?? Su Chrome funziona perfettamente! Mah!

              A questo punto cosa mi suggerisci di fare?

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • marcocarrieri
                marcocarrieri ModSenior • ultima modifica di

                Riesci a vedere se ti ritorna qualcosa?
                Metti un alert dentro la funzione di controllo intanto.
                E poi sappimi dire.

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • M
                  marcsellier User Attivo • ultima modifica di

                  Lasciando tutto come dici tu IE mi scrive nella barra grigia in basso "Errore nella visualizzazione della pagina" al momento del click sul pulsante "Registrati".
                  Ho messo quindi l'alert prima dell'IF e a quel punto IE riesce ad aprire quel nuovo alert ma poi non fa più nulla e nella barra grigia in basso scrive "Fine".

                  Che vuol dire?? :mmm:
                  Che faccio?? :gtsad:

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • marcocarrieri
                    marcocarrieri ModSenior • ultima modifica di

                    Che sia questo?
                    name="form_iscrizione" id="form_iscrizione"

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • M
                      marcsellier User Attivo • ultima modifica di

                      @marcocarrieri said:

                      Che sia questo?
                      name="form_iscrizione" id="form_iscrizione"

                      Ho aggiunto "form_iscrizione" al name ma non cambia nulla... :gtsad:

                      HELP!!!

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • marcocarrieri
                        marcocarrieri ModSenior • ultima modifica di

                        Appena ho un minuti libero lo faccio e lo testo qua.
                        Nel frattempo magari passa qualcuno. 🙂

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • M
                          marcsellier User Attivo • ultima modifica di

                          Ok, ti ringrazio 🙂
                          Magari fossero tutti disponibili come te 😄
                          Io intanto vado avanti...
                          A dopo :gthi:

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • marcocarrieri
                            marcocarrieri ModSenior • ultima modifica di

                            A me con questo sembra andare.

                            [php]<html>
                            <head>
                            <title>Test</title>
                            <script type="text/javascript">
                            function controllo()
                            {
                            var campo=document.getElementById("campo");
                            var valore=campo.value;
                            if(valore=="")
                            {
                            alert("Ci sono dei campi vuoti");
                            }
                            else
                            {
                            document.mioform.submit();
                            }
                            }
                            </script>
                            </head>
                            <body>
                            <form id="mioform" name="mioform" action="pagina.php" method="post">
                            <input type="text" value="" id="campo" name="campo" />
                            <input type="button" value="INVIA" onclick="controllo()" />
                            </form>
                            </body>
                            </html>[/php]

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • M
                              marcsellier User Attivo • ultima modifica di

                              Il tuo codice non l'ho provato. Comunque ho appena risolto...
                              Mi è stato suggerito di sistemare alcune cose:

                              • onsubmit="return controllo()"
                              • if (document.form_iscrizione.nome.value == "")
                              • document.forms['form_iscrizione'].elements['campo_nome'].focus();

                              Adesso funziona 🙂

                              Grazie comunque, mi sei stato di immenso aiuto :ciauz:

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • marcocarrieri
                                marcocarrieri ModSenior • ultima modifica di

                                Bene.
                                Basta risolvere. 😄

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • M
                                  marcsellier User Attivo • ultima modifica di

                                  Vorrei sapere solo un'ultima cosa 😄
                                  Siccome non ho mai programmato in JS non so come usare l'IF per controllare tutti i campi del form insieme.
                                  Il form contiene 8 campi, come faccio a controllare che siano tutti compilati?
                                  Esiste una specie di "AND" che va insieme all'IF?

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • marcocarrieri
                                    marcocarrieri ModSenior • ultima modifica di

                                    Visto che il controllo della correttezza di un campo varia da campo a campo.
                                    Vedi mail, vedi eta o altro, io farei cosi.

                                    var errore=false;

                                    if(condizione)
                                    {
                                    errore=true
                                    }

                                    Per ogni campo.

                                    Alla fine controlli se la variabile errore è a true e in questo caso generi l'alert, senno fai il submit.

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • M
                                      marcsellier User Attivo • ultima modifica di

                                      Siccome non voglio cambiare nuovamente il codice (visto che funziona) ho provato a fare così:

                                      if (document.form_iscrizione.nome.value == "") || (document.form_iscrizione.email.value == "") || (document.form_iscrizione.password.value == "") || ecc....
                                      

                                      Non funziona, non fa nulla quando clicco su "Registrati".

                                      Dove ho sbagliato? :mmm:

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • marcocarrieri
                                        marcocarrieri ModSenior • ultima modifica di

                                        Se metti tutto il codice della pagina, con HTML e Javascript vedo quello che hai fatto cosi magari provo. 🙂

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • M
                                          marcsellier User Attivo • ultima modifica di

                                          Ci sono riuscito :yuppi:

                                          Avevo sbagliato, bisogna scrivere:

                                          if (document.form_iscrizione.nome.value == "" || document.form_iscrizione.email.value == "" || document.form_iscrizione.password.value == "")
                                          

                                          Insomma, gli "OR" vanno messi tutti dentro un'unica parentesi.

                                          Grazie ancora, alla prossima :ciauz:

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • marcocarrieri
                                            marcocarrieri ModSenior • ultima modifica di

                                            Eheh... Allora ti ho dato un aiuto morale eheh...

                                            0 Miglior Risposta Ringrazia Cita Rispondi

                                              1 Risposta Ultima Risposta
                                            Caricamento altri post
                                            Rispondi
                                            • Topic risposta
                                            Effettua l'accesso per rispondere
                                            • Da Vecchi a Nuovi
                                            • Da Nuovi a Vecchi
                                            • Più Voti