javascript - 如何将数组值从输入字段传递给函数 onChange?

标签 javascript jquery tableau-api daterangepicker

我正在调用一个名为“VizDateRange”的函数,该函数在选择日期时接收两个参数,这些选定的值应作为两个值传递,但选定的日期采用奇怪的格式,显示为 02/01/2017-06/19/2017 作为一个值。那么,为了将其作为两个值传递,我应该如何进行?

//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>

//调用bootstrap的日期范围插件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
            }


            )

        });

//输出为

2017年2月1日-2017年6月19日

//但我需要的是“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/

最佳答案

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

        $(document).ready(function() {
            var dp = $('#daterange').daterangepicker({
                    "startDate": "02/06/2017",
                    "endDate": "06/19/2017"
                },
                function(start, end, label) {
                	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>

关于javascript - 如何将数组值从输入字段传递给函数 onChange?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45135298/

相关文章:

javascript - 什么是好的 StrongLoop/GitHub 持续集成管道?

javascript - 如何在 JavaScript 中创建变量条件作为参数?

javascript - CSS3动画完成后重新加载javascript

javascript - Uncaught ReferenceError : show value is not defined(Only for mobile device)

javascript - ERR_TOO_MANY_REDIRECTS : Is my code locked in a loop?

javascript - 如何将文本添加到 CasperJS thenOpen() POST 请求的正文

javascript - Bootstrap可折叠嵌套导航jquery适用于多个目标

javascript - 如何从父网格和子网格中获取复选框元素的引用

tableau-api - 计算 Tableau 中一列的多个值

hadoop - "Unexpected Error"加入 2 个简单表