Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125

    Problema con campi multipli email di un form

    Ciao a tutti.

    Sono qui ancora una volta a chiedere il vostro prezioso aiuto.

    Ho un semplicissimo form in cui ci sono 6 campi in cui vanno inseriti da un minimo di un indirizzo email ad un massimo di 6 indirizzi email.

    codice:
    <form name="myform" method="POST" ACTION="processadati.asp>
    
    <input type="text" name="DESTINATARIO_1" size="30">
    <input type="text" name="DESTINATARIO_2" size="30">
    <input type="text" name="DESTINATARIO_3" size="30">
    <input type="text" name="DESTINATARIO_4" size="30">
    <input type="text" name="DESTINATARIO_5" size="30">
    <input type="text" name="DESTINATARIO_6" size="30">
    
    </form>
    Avrei bisogno di una funzione JS con cui:

    1) si controlla che l'unico campo obbligatorio del form è quello chiamato DESTINATARIO_1;
    2) si controlla la sintassi sia un indirizzo email che può essere nome.cognome@azienda.it o nome.cognome@azienda.com;
    3) se si decide di compilare anche uno o tutti i restanti campi da DESTINATARIO_2 in poi, controllare che la sintassi sia un indirizzo email che possa essere nome.cognome@azienda.it o nome.cognome@azienda.com.

    Spero possiate aiutarmi, grazie-

  2. #2
    Per controllare gli indirizzi Email puoi usare una regular Expression tipo questa:

    http://xyfer.blogspot.com/2005/01/ja...validator.html

    L'ultima controlla praticamente tutti gli indirizzi email.

    Poi fai una funzione:

    codice:
    function checkEmail(form){
       var obbligatorio = form.DESTINATARIO_1.value;
       if(!obbligatorio || !reg.test(obbligatorio)){
          alert("È necessario che almeno il primo campo sia un indirizzo Email valido");
          return false;
       }
       var other = form.DESTINATARIO_2.value;
       if(other){
           if(!reg.test(other)){
              alert("Il campo 2 deve essere un indirizzo Email valido o vuoto");
              return false;
           }
       }
       other = form.DESTINATARIO_3.value;
       if(other){
           if(!reg.test(other)){
              alert("Il campo 3 deve essere un indirizzo Email valido o vuoto");
              return false;
           }
       }
       other = form.DESTINATARIO_4.value;
       if(other){
           if(!reg.test(other)){
              alert("Il campo 4 deve essere un indirizzo Email valido o vuoto");
              return false;
           }
       }
       other = form.DESTINATARIO_5.value;
       if(other){
           if(!reg.test(other)){
              alert("Il campo 5 deve essere un indirizzo Email valido o vuoto");
              return false;
           }
       }
       other = form.DESTINATARIO_6.value;
       if(other){
           if(!reg.test(other)){
              alert("Il campo 6 deve essere un indirizzo Email valido o vuoto");
              return false;
           }
       }
       
       return true;
    }
    e l'associ all'evento onsubmit della form:

    codice:
    <form name="myform" method="POST" ACTION="processadati.asp" onsubmit="return checkEmail(this);">
    Questo è sufficiente affinché non ti invii la form se i tuoi requisiti non sono soddisfatti
    I DON'T Double Click!

  3. #3
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Grazie x la risposta.

    Con la ricerca ho trovato e personalizzata questa regular expression:

    codice:
       var reg_test = new RegExp("^([a-zA-Z]+[\._-])?['a-zA-Z]+(-)?([a-zA-Z\d]+)?@miosito\.it$", "");
    e convalida sia nome.cognome@miosito.it che nome.cognome-Omonimo@miosito.it ma per fargli convalidare anche: ?

    nome.cognome@miosito.com
    nome.cognome-Omonimo@miosito.com

    E poi mi dà errore manca un ;... perchè?

    codice:
    function checkEmail(form){
       
       
       var obbligatorio = form.DESTINATARIO_1.value;
       var reg_test = new RegExp("^([a-zA-Z]+[\._-])?['a-zA-Z]+(-)?([a-zA-Z\d]+)?@miosito\.it$", "");
       
       if(!obbligatorio || !reg_test(obbligatorio)){
          alert("È necessario che almeno il primo campo Destinatario sia un indirizzo Email valido.");
          return false;
       }
       var other = form.DESTINATARIO_2.value;
       if(other){
           if(!reg_test(other)){
              alert("Il campo Destinatario 2 deve essere un indirizzo Email valido o vuoto.");
              return false;
           }
       }
       other = form.DESTINATARIO_3.value;
       if(other){
           if(!reg_test(other)){
              alert("Il campo Destinatario 3 deve essere un indirizzo Email valido o vuoto.");
              return false;
           }
       }
       other = form.DESTINATARIO_4.value;
       if(other){
           if(!reg_test(other)){
              alert("Il campo Destinatario 4 deve essere un indirizzo Email valido o vuoto.");
              return false;
           }
       }
       other = form.DESTINATARIO_5.value;
       if(other){
           if(!reg_test(other)){
              alert("Il campo Destinatario 5 deve essere un indirizzo Email valido o vuoto.");
              return false;
           }
       }
       other = form.DESTINATARIO_6.value;
       if(other){
           if(!reg_test(other)){
              alert("Il campo Destinatario 6 deve essere un indirizzo Email valido o vuoto.");
              return false;
           }
       }
       
       return true;
    }

  4. #4
    Ma hai letto quello che ho scritto???????

    devi usare la funzione test() della regular expression:

    reg_test.test(stringa)
    I DON'T Double Click!

  5. #5
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Originariamente inviato da artorius
    Ma hai letto quello che ho scritto???????

    devi usare la funzione test() della regular expression:

    reg_test.test(stringa)
    Scusa tanto ho letto ma non ho capito...

  6. #6
    usa questa, ti ho anche modificato la regExpr in modo che validi sia .it sia .com

    codice:
    function checkEmail(form){
       
       var obbligatorio = form.DESTINATARIO_1.value;
       var reg_test = new RegExp("^([a-zA-Z]+[\._-])?['a-zA-Z]+(-)?([a-zA-Z\d]+)?@miosito\.(it|com)$", "");
       
       if(!obbligatorio || !reg_test.test(obbligatorio)){
          alert("È necessario che almeno il primo campo Destinatario sia un indirizzo Email valido.");
          return false;
       }
       var other = form.DESTINATARIO_2.value;
       if(other){
           if(!reg_test.test(other)){
              alert("Il campo Destinatario 2 deve essere un indirizzo Email valido o vuoto.");
              return false;
           }
       }
       other = form.DESTINATARIO_3.value;
       if(other){
           if(!reg_test.test(other)){
              alert("Il campo Destinatario 3 deve essere un indirizzo Email valido o vuoto.");
              return false;
           }
       }
       other = form.DESTINATARIO_4.value;
       if(other){
           if(!reg_test.test(other)){
              alert("Il campo Destinatario 4 deve essere un indirizzo Email valido o vuoto.");
              return false;
           }
       }
       other = form.DESTINATARIO_5.value;
       if(other){
           if(!reg_test.test(other)){
              alert("Il campo Destinatario 5 deve essere un indirizzo Email valido o vuoto.");
              return false;
           }
       }
       other = form.DESTINATARIO_6.value;
       if(other){
           if(!reg_test.test(other)){
              alert("Il campo Destinatario 6 deve essere un indirizzo Email valido o vuoto.");
              return false;
           }
       }
       
       return true;
    }
    I DON'T Double Click!

  7. #7
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Grazie campione !!!

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.