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

    Non controllare campi se vuoti entrambi

    Ciao a tutti, sto effettuando dei controlli su alcuni campi di un form...
    I campi sostanzialmente sono due (Nome ed Email)

    Attualmente uso questo codice:
    Codice PHP:
        while(document.Contacts.elements["Nome["+i+"]"]){
              if(
    document.Contacts.elements["Nome["+i+"]"].value == ""){
                
    alert("Campo nome "+i+" vuoto");
                return;
              }    
              
    i++;
        }
        
        while(
    document.Contacts.elements["E-mail["+x+"]"]){
              if(
    document.Contacts.elements["E-mail["+x+"]"].value == ""){
                
    alert("Campo email "+x+" vuoto");
                return;
            }
            else if(!
    email_reg_exp.test(document.Contacts.elements["E-mail["+x+"]"].value)){
                
    alert("Campo email "+x+" non corretto!");
                return;
              }
              
    x++;
        } 
    Il mio form contiene spesso decine di campi "Email" e altrettanti campi name
    Vorrei effettuare un ulteriore controllo in modo da verificare prima se eventiali campi Name e rispettivo campi Email sono compilati...

    Perchè nel caso in cui sia l'uno che l'altro siano vuoti, vorrei che il form fosse inviato ugualmente...

    Per intenderci... se l'utente compila il nome deve compilare anche la mail e viceversa, ma nel caso in cui lasci il campo name e il campo email vuoti, la procedura deve proseguire ugualmente, e quindi arrivare all'invio del form senza effettuare ulteriori controlli su campi che l'utente vuole lasciare vuoti.

    Avevo pensato a qualcosa del genere:
    Codice PHP:
        while(document.Contacts.elements["Nome["+i+"]"]){
              if(
    document.Contacts.elements["Nome["+i+"]"].value == ""){
                
    alert("Campo nome "+i+" vuoto");
                return;
              }
            else if((
    document.Contacts.elements["Nome["+i+"]"].value == "") && (document.Contacts.elements["E-mail["+i+"]"].value == "")){
                
    alert("Campi vuoti"); // me ne frego e proseguo ugualmente!!!
            
    }    
              
    i++;
        } 
    Però non è la soluzione giusta perchè comunque esegue anche gli altri controlli e non arriva mai al submit se non vengono compilati tutti i campi!

    Spero di essere stato chiaro nel spiegare il mio problema... mi date un aiuto?
    Come potrei risolvere? come potrei saltare i controlli previsti se entrambe i campi sono vuoti?

    Grazie 1000 anticipatamente!


  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    Prova cosi (adattando le cose un attimino)

    var numCampiCompilati = 0;

    if( document.Contacts.elements["email"].value !='')
    {
    numCampiCompilati++;
    }
    if( document.Contacts.elements["nome"].value !='')
    {
    numCampiCompilati++;
    }

    if(numCampiCompilati >0 && numCampiCompilati < 2)
    {
    alert('devi inserire sia il nome che la mail o se no lasciare entrambe i campi in bianco. Per punizione, fai 20 flessioni per terra!');
    return false;
    }
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  3. #3
    Ciao stefano, grazie per la risposta... non ho capito molto bene, potresti spiegarmi un po meglio il tuo esempio?

    Io utilizzavo il while, perchè non posso sapere in anticipo quanti sono i mioei campi nel form... il form viene generato dall'utente stesso e crea una lista di campi con name="Nome[x]" e "Email[x]" dove al posto della "x" ci sarà 0, 1, 2, 3, 4, 5 ecc ecc

    Con il tuo metodo non credo di risolvere proprio come avevo immaginato...
    Secondo te ho qualche altra possibilità?



    Cmq grazie 1000 per la risposta!

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    CIAO!
    supponiamo che i campi siano N per ciascun tipo:

    Codice PHP:
    for(var 0nx++)
    {
        var 
    numCampiCompilati 0;

        if( 
    document.Contacts.elements["E-mail["+x+"]"].value!='')
       {
           
    numCampiCompilati++;
       }
       if(
    document.Contacts.elements["Nome["+x+"]"].value!='')
       {
           
    numCampiCompilati++;
       }

       if(
    numCampiCompilati >&& numCampiCompilati 2)
       {
           
    alert('devi inserire sia il nome che la mail o se no lasciare entrambe i campi in bianco. Per      punizione, fai 20 flessioni per terra!');
        return 
    false;
       }

    spero funzioni!!
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

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.