如何使用选项卡打开日期选择器?

时间:2019-03-29 15:03:04

标签: datepicker materialize

我在表单上有一个实现日期选择器,该表单已翻译成葡萄牙语。在光标上单击时,它显示得很好,但是在窗体字段之间切换时,它不会打开。我的意思是,通过按Tab键并输入内容,可以完全在日期上加上不允许的日期。有人可以帮我吗?

我正在使用实现1.0.0

$('.datepicker').datepicker({

  i18n: {
    months: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
    monthsShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
    weekdays: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sabádo'],
    weekdaysShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab'],
    weekdaysAbbrev: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
    today: 'Hoje',
    clear: 'Limpar',
    cancel: 'Sair',
    done: 'Confirmar',
    labelMonthNext: 'Próximo mês',
    labelMonthPrev: 'Mês anterior',
    labelMonthSelect: 'Selecione um mês',
    labelYearSelect: 'Selecione um ano',
    selectMonths: true,
    selectYears: 15,
    beforeShow: function(input, inst)
      {
          inst.dpDiv.css({position: 'absolute'});
      }
  },
  disableDayFn: function (date) {

    var DD = ('0' + date.getDate()).slice(-2);
    var MM = ('0' + (date.getMonth() + 1)).slice(-2);
    var YYYY = date.getFullYear();

    var DDMMYYYY = DD + '/' + MM + '/' + YYYY;

    if (DDMMYYYY == '25/01/2019') { return date; }

    if (DDMMYYYY == '04/03/2019') { return date; }

    if (DDMMYYYY == '05/03/2019') { return date; }

    if (DDMMYYYY == '06/03/2019') { return date; }

    if (DDMMYYYY == '19/04/2019') { return date; }

    if (DDMMYYYY == '21/04/2019') { return date; }

    if (DDMMYYYY == '01/05/2019') { return date; }

    if (DDMMYYYY == '20/06/2019') { return date; }

    if (DDMMYYYY == '09/07/2019') { return date; }

    if (DDMMYYYY == '21/10/2019') { return date; }

    if (DDMMYYYY == '15/11/2019') { return date; }

    if (DDMMYYYY == '20/11/2019') { return date; }

    if (DDMMYYYY == '24/12/2019') { return date; }

    if (DDMMYYYY == '25/12/2019') { return date; }

    if (DDMMYYYY == '31/12/2019') { return date; }

    if (DDMMYYYY == '01/01/2020') { return date; }

  },
  disableWeekends: true,
  format: 'dd/mm/yyyy',
  container: 'body',
  minDate: window.date.addDays(7),


});

1 个答案:

答案 0 :(得分:0)

我是这样编写代码的

    $(function() {
  $('.datepicker').datepicker({

  i18n: {
    months: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
    monthsShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
    weekdays: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sabádo'],
    weekdaysShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab'],
    weekdaysAbbrev: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
    today: 'Hoje',
    clear: 'Limpar',
    cancel: 'Sair',
    done: 'Confirmar',
    labelMonthNext: 'Próximo mês',
    labelMonthPrev: 'Mês anterior',
    labelMonthSelect: 'Selecione um mês',
    labelYearSelect: 'Selecione um ano',
    selectMonths: true,
    selectYears: 15,
    beforeShow: function(input, inst)
      {
          inst.dpDiv.css({position: 'absolute'});
      }
  },
  disableDayFn: function (date) {

    var DD = ('0' + date.getDate()).slice(-2);
    var MM = ('0' + (date.getMonth() + 1)).slice(-2);
    var YYYY = date.getFullYear();

    var DDMMYYYY = DD + '/' + MM + '/' + YYYY;

    if (DDMMYYYY == '25/01/2019') { return date; }

    if (DDMMYYYY == '04/03/2019') { return date; }

    if (DDMMYYYY == '05/03/2019') { return date; }

    if (DDMMYYYY == '06/03/2019') { return date; }

    if (DDMMYYYY == '19/04/2019') { return date; }

    if (DDMMYYYY == '21/04/2019') { return date; }

    if (DDMMYYYY == '01/05/2019') { return date; }

    if (DDMMYYYY == '20/06/2019') { return date; }

    if (DDMMYYYY == '09/07/2019') { return date; }

    if (DDMMYYYY == '21/10/2019') { return date; }

    if (DDMMYYYY == '15/11/2019') { return date; }

    if (DDMMYYYY == '20/11/2019') { return date; }

    if (DDMMYYYY == '24/12/2019') { return date; }

    if (DDMMYYYY == '25/12/2019') { return date; }

    if (DDMMYYYY == '31/12/2019') { return date; }

    if (DDMMYYYY == '01/01/2020') { return date; }

  },
  disableWeekends: true,
  format: 'dd/mm/yyyy',
  container: 'body',
  minDate: window.date.addDays(7),

});


});
  function show_dp(){
    $(".datepicker").datepicker('open'); //Show on click of button
   }

HTML

<div class="row">
        <div class="input-field col s12">
          <input type="text" class="datepicker" id="vencimento" onfocus="show_dp()">
          <label for="vencimento">Vencimento</label>
          <span class="helper-text">É necessário enviar a solicitação no mínimo cinco dias úteis antes do vencimento.</span>
        </div>
      </div>