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

Discussione: Controllo campi

  1. #1

    Controllo campi

    In una pagina avente diversi campi di testo devo fare un controllo su 3 determinati campi.

    campo1 campo2 campo3

    Se uno di questi campi... mettiamo campo1 è compilato devono esser compilati per forza pure campo2 e campo3 altrimenti l'utente non può accedere alla pagina successiva.

    Come posso fare?

    Grazie

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    il form semplificato è simile a questo...

    codice:
    <form ... onsubmit="return check()">
      <input type="text" id="campo1" name="campo1" />
      <input type="text" id="campo2" name="campo2" />  
      <input type="text" id="campo3" name="campo3" />
      ...
      <input type="submit" value="invia" />
    
    </form>
    nell'head della pagina scrivi questo

    codice:
    <script type="text/javascript">
    function check() {
       if (document.getElementById('campo1').value != "") {
           if ((document.getElementById('campo2').value == "") || (document.getElementById('campo3').value == "")) {
              alert('completa i campi');
              return false;
           }
       }
    return true;
    }
    </script>
    Vuoi aiutare la riforestazione responsabile?

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

  3. #3
    Ciao fcaldera grazie della risposta.

    Non va... ho fatto così.

    Qui i campi che voglio controllare:

    codice:
    <input id="SostDon1" name="SostDon1" type="text" maxLength="10"  size="10" class="importo" onKeyUp="return controllaNumeri();" onblur="somma(this.form)" />  					
    
    <input id="DataSostDon1" name="DataSostDon1" type="text" maxLength="10"  size="8" class="importo" onblur="if (!isDate(this.value))alert('Errore nella Data Sostanza donata 1');" /> 
    
    <input id="DebSostDon1" name="DebSostDon1" type="text" maxLength="10"  size="10" class="importo" onKeyUp="return controllaNumeri();" onblur="somma(this.form)" />
    qui la funzione check:

    codice:
    function check() {
       if (document.getElementById('SostDon1').value != "") {
           if ((document.getElementById('DataSostDon1').value == "") || (document.getElementById('DebSostDon1').value == "")) {
              alert('Completa i campi collegati!');
              return false;
           }
       }
    return true;
    }
    qui il form:

    codice:
    <form name="inviadati"  onsubmit="return Controlli_Donazioni(this);"  method="post" action="ded.asp">
    e qui i vari controlli di Controlli_Donazioni() della pagina:

    codice:
    function controlli(obj) { 
    			  return ( isDate(obj.DataSostDon1.value) && isDate(obj.DataSostDon2.value) && isDate(obj.DataSostDon3.value) 
    				 && isDate(obj.DataSostDon4.value) && isDate(obj.DataSostDon5.value) && isDate(obj.DataSostDon6.value)  && controllo_obb() && check() ); 
    			}
    dove sbaglio?

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    codice:
      
      <form name="inviadati"  onsubmit="return Controlli_Donazioni(this);"  method="post" action="ded.asp">
    nell'onsubmit non richiami la funzione check.


    cmq prova l'esempio che ti ho postato (che funziona) e poi lo adatti un pezzo alla volta al tuo codice


    Vuoi aiutare la riforestazione responsabile?

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

  5. #5
    Ma nel form richiamo la funzione Controlli_Donazioni che fa diversi controlli all'onSubmit... per questo non posso richiamare solo la funzione check() e allora la integro in Controllo_Donazioni... come puoi vedere:

    codice:
    function controlli(obj) { 
    			  return ( isDate(obj.DataSostDon1.value) && isDate(obj.DataSostDon2.value) && isDate(obj.DataSostDon3.value) 
    				 && isDate(obj.DataSostDon4.value) && isDate(obj.DataSostDon5.value) && isDate(obj.DataSostDon6.value)  && controllo_obb() && check() ); 
    			}
    :master:

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    veramente il nome della funzione che hai postato non è controllo_donazioni....

    non è che sbagli a richiamare la funzione?

    function controlli(obj) {
    Vuoi aiutare la riforestazione responsabile?

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

  7. #7
    si... ma il nome del file JS è "Controlli_Donazioni.js"

    codice:
    script type="text/javascript" src="Controlli_Donazioni.js"></script>
    che ha come funzione

    function controlli(obj)

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    ossignore...


    il nome del file è irrilevante. Potresti chiamarlo anche pincopalla.js...

    tu sull'onsubmit devi richiamare la funzione (ovvero controlli() )... non il nome del file.


    quindi

    codice:
    <form.... onsubmit="controlli()">

    Vuoi aiutare la riforestazione responsabile?

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

  9. #9
    Mah... cmq funzionava benissimo con onSubmit="Controlli_Donazioni(this)" mi faceva tutti i controlli delle date ecc... ho cambiato anche in controlli() ... ma il controllo dei campi non funziona ugualmente

    :master:

  10. #10
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    l'unica possibilità che funzioni

    Controlli_Donazioni(this)

    è che tu abbia definito questa funzione da qualche parte, ma non ha nulla a che vedere con i nomi dei file js.

    Cmq meglio se posti la pagina per intero (file js inclusi) può darsi che ci sia del codice che provoca un conflitto
    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.