Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25

Discussione: validare un checkbox

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    350

    validare un checkbox

    Buongiorno a tutti,
    ho un form con 3 campi (nome, email, informazioni) + 1 check box. Vorrei validare il form in questo modo:
    - Campo nome obbligatorio
    - Campo email obbligatorio con indirizzo valido
    - Per informazioni nessuna validazione
    - Se spunti il checkbox invia il modulo, se non è spuntato compare messaggio "devi spuntare, sennò ciccia".

    Io ho fatto la validazione del modulo con Dreamweaver (il javascript non lo conosco) e per i primi tre punti tutto ochei, ma per la spunta?
    Come dovrei fare?

    Posto il codice che mi ha creato dreamweaver:

    Nell'head:
    codice:
    function MM_validateForm() { //v4.0
      var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
      for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
        if (val) { nm=val.name; if ((val=val.value)!="") {
          if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
            if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
          } else if (test!='R') { num = parseFloat(val);
            if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
            if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
              min=test.substring(8,p); max=test.substring(p+1);
              if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
        } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
      } if (errors) alert('The following error(s) occurred:\n'+errors);
      document.MM_returnValue = (errors == '');
    } //v4.0
    Nel tag form:
    codice:
    onsubmit="MM_validateForm('nome','','R','email','','RisEmail');return document.MM_returnValue"
    Come posso modificare questo codice in modo da poter validare anche il campo checkbox, come vi ho spiegato?

    Grazie

    Elena
    pap

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: validare un checkbox

    Originariamente inviato da pap
    Buongiorno a tutti,
    ho un form con 3 campi (nome, email, informazioni) + 1 check box. Vorrei validare il form in questo modo:
    - Campo nome obbligatorio
    - Campo email obbligatorio con indirizzo valido
    - Per informazioni nessuna validazione
    - Se spunti il checkbox invia il modulo, se non è spuntato compare messaggio "devi spuntare, sennò ciccia".

    Io ho fatto la validazione del modulo con Dreamweaver (il javascript non lo conosco) e per i primi tre punti tutto ochei, ma per la spunta?
    Come dovrei fare?

    Posto il codice che mi ha creato dreamweaver:

    Nell'head:
    codice:
    function MM_validateForm() { //v4.0
      var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
      for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
        if (val) { nm=val.name; if ((val=val.value)!="") {
          if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
            if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
          } else if (test!='R') { num = parseFloat(val);
            if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
            if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
              min=test.substring(8,p); max=test.substring(p+1);
              if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
        } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
      } if (errors) alert('The following error(s) occurred:\n'+errors);
      document.MM_returnValue = (errors == '');
    } //v4.0
    Nel tag form:
    codice:
    onsubmit="MM_validateForm('nome','','R','email','','RisEmail');return document.MM_returnValue"
    Come posso modificare questo codice in modo da poter validare anche il campo checkbox, come vi ho spiegato?

    Grazie

    Elena
    Elimina la validazione di DW e utilizza questa:
    codice:
    <head>
    <script language="javascript">
    function verifica(){
    email="";
    nome="";
    spunta="";
    if(document.TheForm.email.value==""){
    email="Inserisci un indirizzo E-Mal\n";
    document.TheForm.email.focus();
    }else if(document.TheForm.email.value.lastIndexOf("@")==-1 || document.TheForm.email.value.lastIndexOf(".")==-1){
    email="Inserisci una E-Mail valida\n";
    document.TheForm.email.focus();
    }
    if(document.TheForm.nome.value==""){
    nome="Inserisci il tuo nome\n";
    document.TheForm.nome.focus();
    }
    if(document.TheForm.spunta.checked==false){
    spunta="Spunta la casella per proseguire\n";
    }
    error="I campo sottostanti sono obbligatori\n";
    if((spunta!="")||(email!="")||(nome!="")){
    alert(error+nome+email+spunta)
    return false;
    }
    }
    </script>
    </head>
    <html>
    <body>
    <form name="TheForm" id="TheForm" method="post" onsubmit="return verifica();">
      
    
        nome
    
        <input name="nome" type="text" id="nome">  
        
    
        Email
        
    
        <input name="email" type="text" id="email">
        
    
        informazioni
    
        <input name="informazioni" type="text" id="informazioni">
        
    
        <input name="spunta" type="checkbox" id="spunta" value="tuodato">
        <input type="submit" name="Submit" value="Invio">
      </p>
    </form>
    </body>
    </html>
    ciao
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    350
    Grazie mille!!!!!!!!!!!!!!!!!
    pap

  4. #4

    form mail

    Ciao ho letto i tuoi post,
    vorrei sapere se permettono l'invio delle
    informazioni sopra citate ad una determinata e-mail.
    Puoi aiutarmi in tal senso?


    Ciao maurizio
    Chi abbandona gli animali è una bestia!

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: form mail

    Originariamente inviato da takashido
    Ciao ho letto i tuoi post,
    vorrei sapere se permettono l'invio delle
    informazioni sopra citate ad una determinata e-mail.
    Puoi aiutarmi in tal senso?


    Ciao maurizio
    pop chiedeva di eseguire una verifica sui campi di un form, e lo script esegue questa verifica.

    La tua richiesta è un po consfusa se vuoi inviare i dati di un form ad una determinata e-mail nella action inserisci la tua email. Una cosa del genere:
    codice:
    <form name="MyForm" method="post" action="tuamail@tuosito.it" id="MyForm" onsubmit="return verifica();">
    altrimenti non ho capito la domanda e ti prego di spiegarti meglio, casomai aprendo un 3d con una domanda precisa, cosi che tutti possano aiutarti..

    Ciao
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    Ciao, è possibile inserire nel tuo script la possibilità di far scegliere solo uno dei check presenti (se tre ad esempio)?
    In un'altra discussione un utente mi scriveva di fare così:
    function controllo(f){
    var e=f.elements;
    var k=0;
    for(var i=0;i<e.length;i++)
    if(e[i].type=="checkbox" && e[i].checked) k++;
    if(k<2) { alert("Errore, selezionare un metodo di pagamento!"); return false; }
    if(k>2) { alert("Errore, selezionare solo un metodo di pagamento!"); return false; }
    return true;
    }

    ma non so come integrarlo al tuo.

    grazie mille.

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da nikasil
    Ciao, è possibile inserire nel tuo script la possibilità di far scegliere solo uno dei check presenti (se tre ad esempio)?
    In un'altra discussione un utente mi scriveva di fare così:
    function controllo(f){
    var e=f.elements;
    var k=0;
    for(var i=0;i<e.length;i++)
    if(e[i].type=="checkbox" && e[i].checked) k++;
    if(k<2) { alert("Errore, selezionare un metodo di pagamento!"); return false; }
    if(k>2) { alert("Errore, selezionare solo un metodo di pagamento!"); return false; }
    return true;
    }

    ma non so come integrarlo al tuo.

    grazie mille.
    questo funziona con tre checkbox selezionabile sola una:
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <script language="javascript">
    function verifica(){
    email="";
    nome="";
    carta="";
    bancomat="";
    contanti="";
    if(document.TheForm.email.value==""){
    email="Inserisci un indirizzo E-Mal\n";
    }else if(document.TheForm.email.value.lastIndexOf("@")==-1 || document.TheForm.email.value.lastIndexOf(".")==-1){
    email="Inserisci una E-Mail valida\n";
    }
    if(document.TheForm.nome.value==""){
    nome="Inserisci il tuo nome\n";
    }
    if(document.TheForm.carta.checked==false && document.TheForm.bancomat.checked==false && document.TheForm.contanti.checked==false){
    carta="Seleziona un tipo di pagamento\n";
    }if((document.TheForm.carta.checked==true && document.TheForm.bancomat.checked==true && document.TheForm.contanti.checked==true)||(document.TheForm.carta.checked==true && document.TheForm.bancomat.checked==true)||(document.TheForm.bancomat.checked==true && document.TheForm.contanti.checked==true)){
    carta="Seleziona solo un tipo di pagamento\n";
    }
    error="I campo sottostanti sono obbligatori\n";
    if((email!="")||(nome!="")||(carta!="")||(bancomat!="")||(contanti!="")){
    alert(error+nome+email+carta)
    return false;
    }
    }
    </script>
    </head>
    <body>
    <form name="TheForm" id="TheForm" method="post" action="miapagina.asp" onsubmit="return verifica();">
      
    
        nome
    
        <input name="nome" type="text" id="nome">  
        
    
        Email
        
    
        <input name="email" type="text" id="email">
        
    
        informazioni
    
        <input name="informazioni" type="text" id="informazioni">
        
    
        <input name="carta" type="checkbox" id="carta" value="1">
        <input name="bancomat" type="checkbox" id="bancomat" value="2">
        <input name="contanti" type="checkbox" id="contanti" value="3">
        <input type="submit" name="Submit" value="Invio">
      </p>
    </form>
    </body>
    </html>
    {/code]
    ma visto che vuoi far eseguire sola una opzione meglio con i radio cosi:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <script language="javascript">
    function verifica(){
    email="";
    nome="";
    pagamento="";
    if(document.TheForm.email.value==""){
    email="Inserisci un indirizzo E-Mal\n";
    }else if(document.TheForm.email.value.lastIndexOf("@")==-1 || document.TheForm.email.value.lastIndexOf(".")==-1){
    email="Inserisci una E-Mail valida\n";
    }
    if(document.TheForm.nome.value==""){
    nome="Inserisci il tuo nome\n";
    }
    if(document.TheForm.pagamento[0].checked==false && document.TheForm.pagamento[1].checked==false && document.TheForm.pagamento[2].checked==false){
    pagamento="Seleziona un tipo di pagamento\n";
    }
    error="I campo sottostanti sono obbligatori\n";
    if((email!="")||(nome!="")||(pagamento!="")){
    alert(error+nome+email+pagamento)
    return false;
    }
    }
    </script>
    </head>
    <body>
    <form name="TheForm" id="TheForm" method="post" action="miapagina.asp" onsubmit="return verifica();">
      
    
        nome
    
        <input name="nome" type="text" id="nome">  
        
    
        Email
        
    
        <input name="email" type="text" id="email">
        
    
        informazioni
    
        <input name="informazioni" type="text" id="informazioni">
        
    
        <input name="pagamento" type="radio" id="carta" value="1">
        <input name="pagamento" type="radio" id="bancomat" value="2">
        <input name="pagamento" type="radio" id="contanti" value="3">
        <input type="submit" name="Submit" value="Invio">
      </p>
    </form>
    </body>
    </html>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    Grazie mille.
    Ho incollato il tuo codice ma se non compilo i campi va avanti lo stesso... :master:


  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da nikasil
    Grazie mille.
    Ho incollato il tuo codice ma se non compilo i campi va avanti lo stesso... :master:

    Se hai copiato tutto il codice non funzione xchè sono due pagina sovrapposte:
    codice:
    {/code]
    Trova questa riga poi elimina o la parte sotto fino a </html> oppure la parte sopra fino <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">, ho fatto un errore di digitazione.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    hai ragione.......che pirla.
    Scusa ma ero stato tutta la notte in ospedale che mi è nato un pupo

    Grazie ancora ciao

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.