Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 日期选择器未显示在第一个组件上单击_Javascript_Jquery_Datepicker - Fatal编程技术网

Javascript 日期选择器未显示在第一个组件上单击

Javascript 日期选择器未显示在第一个组件上单击,javascript,jquery,datepicker,Javascript,Jquery,Datepicker,我的JSP中有以下代码,我用敲除js绑定变量 我的js是 calender: function () { console.log("in calender"); var dates = $("#from1, #to1").datepicker({ defaultDate: "+1w", changeMonth: true, numberOfMonths: 1, onSelect: function (selectedDate) {

我的JSP中有以下代码,我用敲除js绑定变量

我的js是

 calender: function () {
     console.log("in calender");
     var dates = $("#from1, #to1").datepicker({
     defaultDate: "+1w",
     changeMonth: true,
     numberOfMonths: 1,
     onSelect: function (selectedDate) {
         var option = this.id == "from" ? "minDate" : "maxDate",
             instance = $(this).data("datepicker"),
             date = $.datepicker.parseDate(
             instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
         dates.not(this).datepicker("option", option, date);
     }
 });
 },
jsp是

当我单击开始日期或结束日期时,日历方法被调用,但问题是第一次在第一个组件上单独调用click just方法时没有显示日期选择器,无论其id如何。从下一次单击第二个组件开始,只有日期选择器可以正常工作。这里有什么我遗漏的吗?

几句话 1.将数据选择器初始化移出日历方法。 2.为每个字段创建两个单独的方法,显示适当的日期选择器,即:

    $("#from1, #to1").datepicker({
     defaultDate: "+1w",
     changeMonth: true,
     numberOfMonths: 1,
     onSelect: function (selectedDate) {
         var option = this.id == "from" ? "minDate" : "maxDate",
             instance = $(this).data("datepicker"),
             date = $.datepicker.parseDate(
             instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
         dates.not(this).datepicker("option", option, date);

      }
    });    

    ........

    calenderFrom: function () {
     $("#from1").datepicker("show");
    }
    calenderTo: function () {
     $("#to1").datepicker("show");
    }

<input type="text" id="from" name="from" data-bind="click: calenderFrom, value:    starDate"/>
<input type="text" id="to" name="to" data-bind="click: calenderTo, value: endDate"/>
UPD
我想你用的是jQueryUI日期选择器。如果是这样,您实际上不需要手动显示它;只需初始化它

它不会触发,因为在第一次通过calendar方法之前,输入实际上不是数据采集器。第二次单击输入时是一个数据采集器,因为它是在calendar方法的第一次运行时设置的

为什么不直接这样做而不是使用日历方法:

$("#from1, #to1").datepicker({...});

请看我下面的答案,在calendar方法第一次运行之前,输入不是数据采集器,该方法初始化输入的数据采集器。在第二次单击时,数据采集器工作,因为它是在第一次通过calendar方法时初始化的。有没有办法用相同的calendar方法初始化数据采集器?将它们作为一个单独的方法,在我们的视图模型中给出js中的编译错误。
$("#from1, #to1").datepicker({...});