0

我有以下引导日期范围选择器:

<div class="form-group">
  <label class="control-label col-md-3">Inicio: </label>
  <div class="col-md-7">
     <div class="input-group input-large date-picker input-daterange" data-date="2014-03-01" data-date-format="yyyy-mm-dd" id="div_datas_funcao_atual">
         <input type="text" class="form-control" name="funcao_atual_inicio" id="funcao_atual_inicio" value="<?php echo $Hoje ?>">
         <span class="input-group-addon"> fim </span>
         <input type="text" class="form-control" name="funcao_atual_fim" id="funcao_atual_fim" value="<?php echo $Hoje ?>">
     </div>
  </div>
</div>

我有这个代码来更新日期范围选择器:

 function mostra_datas_empreitada(){

     ID = $('#empreitada_atual').val();

     $.ajax({
             url: 'php/sst_pessoas.php?tipo_acao=empreitada_datas&id='+ID,
             type: 'get',
             data: { tag: 'getData'},
             dataType: 'json',
             success: function (dados) {
                 if (dados.sucesso) {                          
                     dt_inicial = dados.dt_inicio;
                     dt_final = dados.dt_fim;
                     $('#div_datas_funcao_atual').data('daterangepicker').setStartDate(dt_inicial);
                     $('#div_datas_funcao_atual').data('daterangepicker').setEndDate(dt_final);
                 }
             }
     });
 }

ajax 调用返回以下数据:

{"sucesso":true,"dt_inicio":"2015-08-31","dt_fim":"2015-09-04"}

ajax 调用后,DaterangePicker 值没有改变,并且我收到消息“无法读取未定义的属性 'setStartDate' ”。我不知道怎么了。任何帮助表示赞赏。谢谢。

4

2 回答 2

1

我没有看到组件的初始化。尝试这个。

    $('#daterange').daterangepicker({ startDate: '03/05/2005', endDate: '03/06/2005' });

//change the selected date range of that picker
$('#daterange').data('daterangepicker').setStartDate('03/01/2014');
$('#daterange').data('daterangepicker').setEndDate('03/31/2014');
于 2017-09-01T13:00:15.140 回答
0

我认为您需要选择要更新的输入而不是它们的容器。尝试:

 function mostra_datas_empreitada(){

 ID = $('#empreitada_atual').val();

 $.ajax({
         url: 'php/sst_pessoas.php?tipo_acao=empreitada_datas&id='+ID,
         type: 'get',
         data: { tag: 'getData'},
         dataType: 'json',
         success: function (dados) {
             if (dados.sucesso) {                          
                 dt_inicial = dados.dt_inicio;
                 dt_final = dados.dt_fim;

//Change these two selectors:                     
$('#funcao_atual_inicio').data('daterangepicker').setStartDate(dt_inicial);                     
$('#funcao_atual_fim').data('daterangepicker').setEndDate(dt_final);

             }
         }
 });
 }

或者,如果@Mickey 的建议是正确的并且您尚未初始化日期选择器,请尝试:

$('#div_datas_funcao_atual').daterangepicker({ startDate: '03/05/2005', endDate: '03/06/2005' });

//change the selected date range of that picker
$('#div_datas_funcao_atual').data('daterangepicker').setStartDate('03/01/2014');
$('#div_datas_funcao_atual').data('daterangepicker').setEndDate('03/31/2014');
于 2017-09-01T13:16:17.793 回答