Doubt with DATAPICKER

1

I'm using DataPicker and would like to ask a question about just enabling a specific day.

<script>
    $(function () {
        var datepicker = document.getElementById('<%=txtDataRetirada.ClientID%>');
        $("#MainContent_txtDataRetirada").datepicker({
            minDate: 0,
            dateFormat: 'dd/mm/yy',
            dayNames: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'],
            dayNamesMin: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S', 'D'],
            dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb', 'Dom'],
            monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
            monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
            nextText: 'Próximo',
            prevText: 'Anterior'
        });
    });
</script>
    
asked by anonymous 28.04.2017 / 21:58

1 answer

0

The .datepicker() API has method for this, beforeShowDay that accepts a function that calls for each date. This function must return an array with the following index (only the first is required):

  

[0] : true / false indicating whether the day can be selected or not [1] : A CSS class to give this date
[2] : an optional text for the date tooltip

The code would be:

var datasLivres = ['30-4-2017', '2-5-2017', '9-5-2017', '18-5-2017'];
function verificadorDeDatas(d) {
    var data = [d.getDate(), d.getMonth() + 1, d.getFullYear()].join('-');
    return [datasLivres.indexOf(data) != -1];
}
$("#MainContent_txtDataRetirada").datepicker({
    beforeShowDay: verificadorDeDatas,
    minDate: 0,

Example:

$(function() {
  // para testar muda estas datasLivres para outras datas
  var datasLivres = ['30-4-2017', '2-5-2017', '9-5-2017', '18-5-2017'];
  function verificadorDeDatas(d) {
    var data = [d.getDate(), d.getMonth() + 1, d.getFullYear()].join('-');
    return [datasLivres.indexOf(data) != -1];
  }
  $("#MainContent_txtDataRetirada").datepicker({
    beforeShowDay: verificadorDeDatas,
    minDate: 0,
    dateFormat: 'dd/mm/yy',
    dayNames: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'],
    dayNamesMin: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S', 'D'],
    dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb', 'Dom'],
    monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
    monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
    nextText: 'Próximo',
    prevText: 'Anterior'
  });
});
<link href="https://code.jquery.com/ui/jquery-ui-git.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><scriptsrc="https://code.jquery.com/ui/jquery-ui-git.js"></script>

<input type="text" id="MainContent_txtDataRetirada" />
    
30.04.2017 / 08:22