Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Confronto date in un form

    Buongiorno, spero possiate aiutarmi.

    Ho inserito questa funzione all'interno di un form; la funzione controlla che i campi data_inizio e data_fine siano correttamente compilati e che la data_inizio sia sempre minore della data_fine.

    Problemi:

    1) nel form ho anche altri campi che possono essere selezionati e data_inizio e data_fine non devono essere obbligatori, perchè posso anche decidere di non seelzionare nessuna data_inizio o fine;

    2) se decido di selezionare una data_inizio il campo data_fine deve diventare obbligatorio...

    Non ci riesco

    codice:
    <script language="JavaScript" type="text/JavaScript">
    <!--
    
    function isDate(str)
    { // anno a 4 cifre !!!
      spz = str.split("/");
      if (spz.length != 3) return(false);
     
      dat = new Date(spz[2], spz[1] - 1, spz[0]);
     
      if (dat.getFullYear() == parseFloat(spz[2]) &&
          dat.getMonth() == (parseFloat(spz[1]) - 1) &&
          dat.getDate() == parseFloat(spz[0])) return(dat);
     
      return(false);
    }
    
    function convalidaForm(Qform)
    {
      if ((data_1 = isDate(Qform.data_inizio.value)) == false)
        {
          alert("Inserire data inizio correttamente.");
          Qform.data_inizio.focus();
          return(false);
        }
     
      if ((data_2 = isDate(Qform.data_fine.value)) == false)
        {
          alert("Inserire data fine correttamente.");
          Qform.data_fine.focus();
          return(false);
        }
     
      if (data_2.getTime() < data_1.getTime())
        {
          alert("La data di fine non può essere inferiore alla data di inizio !");
          Qform.data_fine.focus();
          return(false);
        }
     
      // Abilita l'invio del FORM
      return(true);
    }
    //-->
    </script>
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  2. #2
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Passo avanti.

    Con queste modifiche il form parte anche se non ho compilato data_inizio e data_fine. OK

    Se chiedo data_inizio e data_fine il controllo sulla validità dell'intervallo date funziona. OK

    Non riesco a rendere obbligatorio data_fine quando seleziono data_inizio... KO

    codice:
    <script language="JavaScript" type="text/JavaScript">
    <!--
    
    function isDate(str)
    { // anno a 4 cifre !!!
      spz = str.split("/");
      if (spz.length != 3) return(false);
     
      dat = new Date(spz[2], spz[1] - 1, spz[0]);
     
      if (dat.getFullYear() == parseFloat(spz[2]) &&
          dat.getMonth() == (parseFloat(spz[1]) - 1) &&
          dat.getDate() == parseFloat(spz[0])) return(dat);
     
      return(false);
    }
    
    function convalidaForm(Qform)
    {
      data_1 = isDate(Qform.data_inizio.value) 
      data_2 = isDate(Qform.data_fine.value)
      
      if (data_2.getTime() < data_1.getTime())
        {
          alert("La data di fine non può essere inferiore alla data di inizio !");
          Qform.data_fine.focus();
          return(false);
        }
     
      // Abilita l'invio del FORM
      return(true);
    }
    //-->
    </script>
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    così invece, mi chiede sempre la data_fine:

    codice:
    function convalidaForm(Qform)
    {
      data_1 = isDate(Qform.data_inizio.value) 
      data_2 = isDate(Qform.data_fine.value)
      
      if (data_1.getTime() != "")    
    {      
    alert("La data di fine è obbligatoria !");      
    Qform.data_fine.focus();      
    return(false);    
    } 
      
      if (data_2.getTime() < data_1.getTime())
        {
          alert("La data di fine non può essere inferiore alla data di inizio !");
          Qform.data_fine.focus();
          return(false);
        }
    // Abilita l'invio del FORM
    return(true);
    }
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  4. #4
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    nemmeno così funziona...

    codice:
    function convalidaForm(Qform)
    {
      data_1 = isDate(Qform.data_inizio.value) 
      data_2 = isDate(Qform.data_fine.value)
       
      if ((data_1.getTime() != "" && data_2.getTime() == "") || data_2.getTime() < data_1.getTime())
        {
          alert("La data di fine non può essere inferiore alla data di inizio !");
          Qform.data_fine.focus();
          return(false);
        } 
     
      // Abilita l'invio del FORM
      return(true);
    }
    //-->
    </script>
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  5. #5
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Risolto !

    codice:
    <script language="JavaScript" type="text/JavaScript">
    <!--
    
    function isDate(str)
    { // anno a 4 cifre !!!
      spz = str.split("/");
      if (spz.length != 3) return(false);
     
      dat = new Date(spz[2], spz[1] - 1, spz[0]);
     
      if (dat.getFullYear() == parseFloat(spz[2]) &&
          dat.getMonth() == (parseFloat(spz[1]) - 1) &&
          dat.getDate() == parseFloat(spz[0])) return(dat);
     
      return(false);
    }
    
    function convalidaForm(Qform)
    {
      data_1 = isDate(Qform.data_inizio.value) 
      data_2 = isDate(Qform.data_fine.value)
       
      if ((data_1 != "" && data_2 == "") || data_2.getTime() < data_1.getTime())
        {
          alert("Errore nella selezione:\n\n1) La data fine non può essere minore della data inizio;\n2) Non è stata selezionata la data fine.");
          Qform.data_fine.focus();
          return(false);
        }
     
      // Abilita l'invio del FORM
      return(true);
    }
    //-->
    </script>
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  6. #6

    Date

    Potresti gentilmente completare lo script con le dichiarazioni da inserire nel <BODY>
    Grazie

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.