2017-07-17 62 views
1

我打电话给一个名为“VizDateRange”的函数,它在选择日期时接收两个参数,这些选定值应该作为两个值传递,但所选日期格式为02/01/2017-06/19/2017作为一个价值。所以,为了将它作为两个值传递,我该如何继续?如何将数组值传递到函数onChange从输入字段?

// HTML

<div class="input-group date" data-provide="datepicker" name="" title="Select date range"> 
      <input type="text" id="daterange" class="form-control" onChange=VizFilter(this.val().split(" - "))> //this is not working obviously. 
     </div> 

//调用daterangepicker其是自举的日期范围插件

$(document).ready(function() { 
      var dp = $('#daterange').daterangepicker({ 

       "startDate": "02/06/2017", setting the limit for min 
       "endDate": "06/19/2017"setting the limit for max 
      } 


      ) 

     }); 

//输出是

2月1日/ 2017-06/19/2017

//但我需要的是“02/01/2017”,“06/19/2017”以便将它传递给VizDateRange函数。

//所以我可以使用split(“ - ”)将它变成数组,但如何从输入字段传递onChange或onClick?

//功能应该得到所谓的onChange或ONCLICK和它要求两个值,它接收两个参数

function vizDateRange(minDate,maxDate) 

      { 
       sheet = viz0.getWorkbook().getActiveSheet(); 
       worksheetsArray = sheet.getWorksheets(); 
       for (var i = 0; i < worksheetsArray.length; i++) { 
        worksheetsArray[i].applyRangeFilterAsync("WEEK(DCM Date)", { 
         min: new Date(minDate), 
         max: new Date(maxDate) 

        }); 
       } 
}; 

//这里的jsfiddle

https://jsfiddle.net/u4t1rebs/

+0

什么具体的库您使用的daterangepicker?我敢打赌,它有一个内置的变化功能,你可以使用 – DelightedD0D

+0

它几乎要问如何从daterangepicker获取值并在将其传递给另一个函数之前对其进行编辑?并且每次选择新的日期范围时都必须发生。 –

+0

@ DelightedD0D它是www.daterangepicker.com –

回答

0

如果你看一下library's examples第一个参数是一个选项对象,但作为第二个可选参数,您可以传递一个回调函数。下面是我将如何使用回调来解决这个问题:

 $(document).ready(function() { 
 
      var dp = $('#daterange').daterangepicker({ 
 
        "startDate": "02/06/2017", 
 
        "endDate": "06/19/2017" 
 
       }, 
 
       function(start, end, label) { 
 
       \t start = moment(start).format('MM/DD/YYYY'); 
 
        end = moment(end).format('MM/DD/YYYY'); 
 
        vizDateRange(start, end) 
 
       } 
 
      ) 
 
     }); 
 

 

 
     function vizDateRange(minDate, maxDate) { 
 
      // do stuff here 
 
      console.log(minDate, maxDate); 
 
     }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!-- Include Required Prerequisites --> 
 
<script type="text/javascript" src="//cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script> 
 
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 

 
<!-- Include Date Range Picker --> 
 
<script type="text/javascript" src="//cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.js"></script> 
 
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.css" /> 
 

 

 
<div class="input-group date" data-provide="datepicker" name="" title="Select date range"> 
 
    <input type="text" id="daterange" class="form-control" > //this is not working obviously. 
 
</div>

+0

哇。这是工作!!!谢谢!我会更多地阅读图书馆的例子,以免再次重复这种类型的错误。谢谢! –

相关问题