Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    863

    datepicker minDate insieme a beforeShowDay

    In questo modo ottengo l'eliminazione dei giorni trscorsi

    $(function() {
    $.datepicker.setDefaults($.datepicker.regional['it']);
    $( "#data" ).datepicker( { minDate: new Date() });
    });

    Così invece l'eliminazione delle Domeniche e dei Lunedì

    $(function() {
    $.datepicker.setDefaults($.datepicker.regional['it']);
    $( "#data" ).datepicker(

    {
    beforeShowDay: function(date){
    if((date.getDay() == 0) || (date.getDay() == 1)){
    return [false];
    } else {
    return [true];
    }
    }
    }
    );
    });


    Non riesco ad ottenere entrambi i risultati in un'unica funzione.

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,696
    Devi specificare sia la proprietà minDate, sia la proprietà beforeShowDay all'interno dello stesso oggetto definito per datepicker.
    La questione è molto semplice per cui, se non riesci, presuppongo che tu non sappia come definire le proprietà dentro un oggetto in JavaScript. Si devono inserire le varie coppie proprietà:valore separate da virgola.

    Dovresti quindi avere una cosa del genere:
    codice:
    $("#data").datepicker({
      minDate: new Date(),
      beforeShowDay: function(date){
        if((date.getDay() == 0) || (date.getDay() == 1)){
          return [false];
        } else {
          return [true];
        }
      }
    });
    Giusto per la cronaca, personalmente userei una soluzione più compatta:
    codice:
    $("#data").datepicker({
      minDate: new Date(),
      beforeShowDay: function(d){return [d.getDay() > 1];}
    });
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    863
    Grazie e certo che non so farlo.
    Mi sono imbattuto in un nuovo lavoro, sito mobile.

  4. #4
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    863
    codice:
    var
    unavailableDates = [
    
    "2/6/2015"
    ,"24/8/2015","30/9/2015"
    
    ];
    
    
                beforeShowDay: function(d){return [d.getDay() > 1];},
       onSelect: function(date) {
          dmy = date.getDate() + "/" + (date.getMonth()+1) + "/" +date.getFullYear();
          if ($.inArray(dmy, unavailableDates) < 0) {
             return [true,"highlight","Aperto"];
          } else {
             return [false,"highlight","Chiuso"];
        }
    }
    });
    });
    Sto cercando di recuperare giorni festivi da escludere insieme ai lunedi' e domeniche.
    Il calendario si apre escludendo solo lunedì e domeniche.
    Ultima modifica di jet; 05-05-2015 a 19:18

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,696
    Non capisco perché stai usando onSelect.
    Se devi escludere certe date assieme a lunedì e domeniche (quindi prima che sia mostrato il calendario), non ti conviene impostare la condizione sempre nel beforeShowDay?

    Inoltre, se si tratta di festività ricorrenti annualmente, perché specificare l'anno negli elementi dell'array?
    In tal caso presumo che dovrai andare ad aggiornare l'array ogni anno... Non capisco, puoi chiarire?
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  6. #6
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    863
    Le date sono in una tabella e le recupero.
    mi serve anche il giorno di Pasqua. Certo, in questo caso aggiornerei le date festive ogni anno.
    Proverò ad inserirlo nel beforeshowday.
    Grazie.

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,696
    Non conosco il contesto quindi mi sorgono dei dubbi sul sistema che stai adottando.
    Mi sembra poco dinamico.

    A me poco importa ma è giusto per metterti la pulce nell'orecchio...
    Mettiamo che tu recuperi le date dalla tua bella tabella. Nella tabella ci sono le date di vari anni o solo dell'anno in corso o solo da un periodo ad un altro? Stiamo parlando di una tabella di database? In tal caso, perché ti serve usare una tabella? Come funziona questa cosa?

    ..ad ogni modo, mettiamo il caso che io vada ad aprire il datapicker, che mi esclude le date ["2/6/2015", "24/8/2015", "30/9/2015"] recuperate dalla tabella... io potrò comunque selezionare il 2/6 del 2016 o del 2017 o di tutti gli altri anni tranne il 2015, e così per tutte le tue date in cui specifichi l'anno, giusto?
    In questo caso il tuo sistema a qualche falla, oppure mi sto perdendo qualcosa.
    A che ti serve questo datapicker?
    Oltre il limite minimo (minDate), devi impostare anche uno massimo?

    Perché aggiornare le date da escludere ogni anno? Ti pagano per farlo? Fai un'assistenza annuale?
    Se sono date fisse, personalmente andrei ad automatizzare questa operazione (a meno che non mi pagassero per aggiornarle ogni anno.. allora il discorso è da vedere sul lato economico, e in questo caso posso capire il pretesto).

    Le date mobili (come la Pasqua) puoi comunque ricavartele al volo con qualche funzioncina sempre in JavaScript.

    Se invece si tratta di date specifiche che possono cambiare ogni anno (e che magari devono essere specificate dall'amministratore del sito, per dirne una) allora avrebbe senso specificarne anche l'anno, diversamente non ne vedo il senso.

    Se vuoi ti posto una soluzione che comprende tutti i vari casi... poi vedi tu.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #8
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,696
    mi serve anche il giorno di Pasqua.
    ...no aspetta... dal momento che stai escludendo a priori le domeniche, non ha alcun senso calcolare la data di Pasqua
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  9. #9
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    863
    Il sito è di un parente stretto che però devo amministrare io.
    parlavo di Pasqua, ma anche di ferie.
    Insomma di date che naturalmente posso anche aggiungere a mano nella pagina, ma dal momento che ho un Mysql,le posso mettere anche in una tabella, appunto.
    Insomma, la soluzione è aggiungere lo script che elimina quei giorni insieme a tutti i lunedì e domeniche.
    Se mi puoi aiutare te ne sarei grato.
    non mi serve una data max.

  10. #10
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,696
    Farei una cosa del genere:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
        <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
        <script type="text/javascript">
        
          var dateEscluse = ["2/6","24/8","30/9","1/1/2016"];           // puoi usare "G/M" oppure "G/M/AAAA"
          
          $(function(){
            $("#data").datepicker({
                minDate: new Date()
              , beforeShowDay: function(d){
                  var g=d.getDate(),m=(d.getMonth()+1),a=d.getFullYear();
                  return (
                          d.getDay() > -1                               // escludo domeniche e lunedì
                      &&  dateEscluse.indexOf(g+"/"+m) == -1            // escludo date fisse ricorrenti annualmente ("G/M")
                      &&  dateEscluse.indexOf(g+"/"+m+"/"+a) == -1      // escludo date per specifici anni ("G/M/AAAA")
                    )
                      ? [true,"","Aperto"]
                      : [false,"","Chiuso"];
                }
            })
          })
        </script>
      </head>
      <body>
        <label>Inserisci Data: <input id="data"></label>
      </body>
    </html>
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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.