Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Ciclo if che si blocca

  1. #1

    Ciclo if che si blocca

    ciao ecco il mio codice non sono proprio ferrato in js allora:

    Codice PHP:
    //Effettua il controllo sul campo regione
        
    if ((form_regione == "") || (form_regione == "undefined")) {
            
    alert("Il campo Regione è obbligatorio.");
            
    document.modulo_add_struttura.regione.focus();
            return 
    false;
        }
        
        
        
        [
    B]//Effettua il controllo tipologia sistemazione2[/B] 
        
    else if (document.modulo_add_struttura.tipo_sistem_2.value != "") {
            
            if ( (
    document.modulo_add_struttura.pz_min2.value == "") && (document.modulo_add_struttura.pz_max2.value == "") && (document.modulo_add_struttura.pz_min2_set.value == "") && (document.modulo_add_struttura.pz_max2_set.value == "") ) {
                
    alert("Impostare almeno un campo prezzo! Per tipologia sistemazione n°2");
                
    document.modulo_add_struttura.tipo_sistem_2.focus();
                return 
    false;
            }
            
            
        }
        
        
        
        
        
        
    //Effettua il controllo sul campo provincia
        
    else if ((form_provincia == "") || (form_provincia == "undefined")) {
            
    alert("Il campo Provincia è obbligatorio.");
            
    document.modulo_add_struttura.provincia.focus();
            return 
    false;
        } 
    Il problema ste nel controllo tipologia sistemazione2 infatti quando mi visualizza il mesaaggio Impostare almeno un campo prezzo! Per tipologia sistemazione n°2 poi non va più al passaggio sucessivo .. ho provato anche ad aggiungere return true; ma si blocca sempre li ..

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    se entra nel primo "else if" e' normale che non contiuna perche' riscontrando quel caso si ferma li.
    Oltretutto se c'e' un return false si ferma tutto.
    Se deve passare anche all 'ultima condizione allora o metti 3 controlli differenti con 3 semplici if (ci pensera' poi il return false a bloccare tutto) o gli ultimi 2 insieme se devono essere eseguiti insieme e return false dove necessario.

  3. #3
    ciao e grazie della risposta ...
    quello che hai detto non lo posso fare perchè il codice mostrato è solo una porzione .. non è possibile mettere una specie di comando che continua?

    Codice PHP:
       [B]//Effettua il controllo tipologia sistemazione2[/B] 
        
    else if (document.modulo_add_struttura.tipo_sistem_2.value != "") { 
             
            if ( (
    document.modulo_add_struttura.pz_min2.value == "") && (document.modulo_add_struttura.pz_max2.value == "") && (document.modulo_add_struttura.pz_min2_set.value == "") && (document.modulo_add_struttura.pz_max2_set.value == "") ) { 
                
    alert("Impostare almeno un campo prezzo! Per tipologia sistemazione n°2"); 
                
    document.modulo_add_struttura.tipo_sistem_2.focus(); 
                return 
    false
            } else {
            
    continua al prossimo passaggio 
            
    }
             
             
        } 

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Codice PHP:
    //ENTRANDO QUA SI FERMA QUI DENTRO PER VIA DEL RETURN FALSE
        
    else if (document.modulo_add_struttura.tipo_sistem_2.value != "") {
             
           
    //SE SI VERIFICA QUESTO SI BLOCCA QUI SE NON SI VERIFICA PASSA ALL ELSE (si puo' fare come vuoi in base alle condizioni controllate)
            
    if ( (document.modulo_add_struttura.pz_min2.value == "") && (document.modulo_add_struttura.pz_max2.value == "") && (document.modulo_add_struttura.pz_min2_set.value == "") && (document.modulo_add_struttura.pz_max2_set.value == "") ) {
                
    alert("Impostare almeno un campo prezzo! Per tipologia sistemazione n°2");
                
    document.modulo_add_struttura.tipo_sistem_2.focus();
                return 
    false;
            } else {
            
    continua al prossimo passaggio
            
    }
             
             
        } 

  5. #5
    si ma il return false viene impostato se i campi pz_min2 == "" && pz_max2.value == "" ecc... se uno di questi campi è compilato non si attiva il return false; giusto?

  6. #6
    cmq ho risolto così:

    Codice PHP:
    //Effettua il controllo tipologia sistemazione2
        
    else if ( (document.modulo_add_struttura.tipo_sistem_2.value != "") && ( (document.modulo_add_struttura.pz_min2.value == "") && (document.modulo_add_struttura.pz_max2.value == "") && (document.modulo_add_struttura.pz_min2_set.value == "") && (document.modulo_add_struttura.pz_max2_set.value == "") )) {
                
    alert("Impostare almeno un campo prezzo! Per tipologia sistemazione n°2");
                
    document.modulo_add_struttura.tipo_sistem_2.focus();
                return 
    false;

            
        } 
    sembra funzionare ...

  7. #7
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    questo e' il controllo che hai fatto
    Codice PHP:
    else if ( (document.modulo_add_struttura.tipo_sistem_2.value != "") && ( (document.modulo_add_struttura.pz_min2.value == "") && (document.modulo_add_struttura.pz_max2.value == "") && (document.modulo_add_struttura.pz_min2_set.value == "") && (document.modulo_add_struttura.pz_max2_set.value == "") )) { 
    ..... 
    se si verifica ovviamente esegue quello che c'e' al suo interno (e si ferma per return false)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.