Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    110

    Come rendere obbligatori i campi di un form?

    Ciao,
    ho fatto una ricerca in rete in merito, ma senza trovare nessuno script funzionante.


    Come faccio ad inserire uno script che controlli la presenza di testo/numeri nel campo e restituisca l' "errore" - compila il campo! - se l'utente lo lascia vuoto?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Codice PHP:
    <script>
    function 
    controllo()
    {
    var 
    nome document.getElementById('name').value;
    if(
    nome==''){
    document.getElementById('err_name').innerHTML 'manca il nome';
    return 
    false;
    }
    //se non ci sono errori()
    document.forms['myForm'].submit()
    }
    </script>

    <form ......id="myForm">
    <input type="text" id="name" name="nome" value="">
    <div  id="err_name"></div>
    .....
    <input type="button" value="invio" onClick="controllo()"> 
    e cosi per il resto
    PS molto semplice il codice.. un po macchinoso forse ma se la prima volta ti fai un idea

    EDIT

  3. #3
    Metti di avere una form del tipo:

    <form id="MyForm" name="MyForm" action=".." method="post">...

    al momento in cui clicchi sull'input submit, lanci un evento chiamato onSubmit prima di inviare la richiesta al server. Tramite quell'evento puoi bloccare l'esecuzione del submit vero e proprio ritornando semplicemente false.

    Quindi ti basta creare una function tipo

    codice:
    var checkForm = function(){
       var ret = true;
    
       //Qui ci metti i controlli ai campi input e se uno dei controlli fallisce metti in ret = false;
       //e fai uscire un alert con il messaggio di errore, ad esempio:
       if(this.nomeInput.value == '')
       { 
           ret = false;
           alert("E' necessario compilare nomeInput");
       }
    
       return ret;
    }
    Poi la leghi all'evento con:

    codice:
    window.onload = function(){
       document.getElementById("MyForm").onsubmit = checkForm;
    }
    A questo punto la form verrà inviata al server se, e solo se, il controllo in checkForm restuisce true.
    I DON'T Double Click!

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    110

    ho provato...

    ad inserire questo:

    <script>
    function controllo()
    {
    var NOME = document.getElementById('NOME').value;
    if(NOME==''){
    document.getElementById('err_name').innerHTML = 'manca il nome';
    return false;
    }
    //se non ci sono errori()
    document.forms['myForm'].submit()
    }
    </script>

    tra head ed head

    l'azione del pulsante invia i dati è:

    <INPUT name="Invia" TYPE="submit" onClick="controllo()" VALUE="INVIA I DATI">


    ma non controlla nulla, invia lo stesso.
    Dove sbaglio?

  5. #5
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    se usi un input type submit il submit viene eseguito ....
    usa type button e su onclick la funziona appunto..
    devi gestire li in submit se ci sono errori o meno

  6. #6
    Personalmente, penso sia più pratico gestire l'evento onSubmit della form, bloccandolo, all'occorrenza, ritornando false alla funzione associata
    I DON'T Double Click!

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    110

    ok!

    funziona perfettamente!
    una domanda:
    ho i 2 campi MASCHIO - FEMMINA che hanno il seguente codice:

    <input name="MASCHIO" type="radio" id="radio2" size="30" checked>

    <input name="FEMMINA" type="radio" id="radio" value="" size="30">

    però nn posso renderli obbligatori...o uno segna M o F, come posso fare?
    Grazie!!!

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    ti basta valorizzare uno dei radiobox in partenza per rendere obbligatorio l'intero insieme di radiobox (dal momento che non puoi deselezionarli)
    Vuoi aiutare la riforestazione responsabile?

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

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    110

    scusami...

    non sono esperto..
    cosa significa valorizzare?

  10. #10
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    significa che dai checked="checked" ad almeno un radiobox (e quindi facendogli assumere il relativo valore che hai definito nell'attributo "value"...)
    Vuoi aiutare la riforestazione responsabile?

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

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.