Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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 Jquery UI多日期选择器选择_Javascript_Jquery Ui_Datepicker - Fatal编程技术网

Javascript Jquery UI多日期选择器选择

Javascript Jquery UI多日期选择器选择,javascript,jquery-ui,datepicker,Javascript,Jquery Ui,Datepicker,您好,我有几个日期选择器,都在同一类的下。日期选择器我有一个函数,可以执行任何日期选择器的onSelect。然而,我想在选择一个特定的日期选择器时执行另一个函数,我已经尝试对特定的日期选择器分配一个单独的日期选择器,我想要一个单独的函数,但似乎无法让它工作 原始日期选择器类 $(".datepicker").datepicker({ dateFormat: 'yy-mm-dd', showButtonPanel: true,

您好,我有几个日期选择器,都在同一类的
下。日期选择器
我有一个函数,可以执行任何日期选择器的
onSelect
。然而,我想在选择一个特定的日期选择器时执行另一个函数,我已经尝试对特定的日期选择器分配一个单独的日期选择器,我想要一个单独的函数,但似乎无法让它工作

原始日期选择器类

 $(".datepicker").datepicker({

            dateFormat: 'yy-mm-dd',
            showButtonPanel: true,
            onSelect: function (date_check) { }

})
我的特定目标日期选择器,它也包含日期选择器类

$("#myDate").datepicker({

                dateFormat: 'yy-mm-dd',
                showButtonPanel: true,
                onSelect: function (date_assign) { }

    })
我的问题是:

是否有一种方法可以使用
.datepicker
类将特定的日期选择器作为目标,以执行该特定日期选择器的辅助onSelect函数。还是有不同的方法

*注意:日期选择器必须能够执行
.datepicker
类下的原始函数和新函数

更新

<input class="datepicker" id="a"> </input>
<input class="datepicker" id="b"> </input>
<input class="datepicker" id="myDate"> </input>

选择a或b或myDate时,运行原始的
.datepicker
onSelect
功能


选择myDate时,运行原始的
.datepicker
onSelect
并运行一个单独的onSelect函数。

您可以检查选项
onSelect
是否已分配,如果已分配,则将其添加到函数中,如是

var onSelectFn = $("#myDate").datepicker( "option", "onSelect")
$("#myDate").datepicker({
                dateFormat: 'yy-mm-dd',
                showButtonPanel: true,
                onSelect: function (date_assign) { 
                     if(typeof onSelectFn === 'function') onSelectFn();
                     // do the next function
                }

    })
更新

<input class="datepicker" id="a"> </input>
<input class="datepicker" id="b"> </input>
<input class="datepicker" id="myDate"> </input>
要更新
#myDate
选择器的
onSelect
属性,您需要如下操作

第一个
datePicker
所有
.datePicker
元素

$(".datepicker").datepicker({
                dateFormat: 'yy-mm-dd',
                showButtonPanel: true,
                onSelect: function (date_assign) { 
                     if(typeof onSelectFn === 'function') onSelectFn();
                     // do the next function
                }

    })
然后更新
#myDate

$("#myDate").datepicker( "option", "onSelect",function(data_assign){
  // your new functionality 
})

这应该可以做到:)

创建一个自定义事件,然后触发该事件,将参数从select传递到自定义事件:

$('#myDate').on('customevent', function(e, dateText, inst) {
  alert('custom triggered' + dateText);
});
$(".datepicker").datepicker({
  dateFormat: 'yy-mm-dd',
  showButtonPanel: true,
  onSelect: function(dateText, inst) {
    if ($(this).is('#myDate')) {
      $('#myDate').trigger("customevent", [dateText, inst]);
    }
    // do universal code
    alert('Date:' + dateText);
  }
});

在这里玩一下:

我设法回答了我自己的问题:

$(".datepicker").datepicker({
            dateFormat: 'yy-mm-dd',
            showButtonPanel: true,
            onSelect: function (date_check) {

            //DO SOME FUNCTION STUFF

           if($(this).attr('id') == "myDate") {

            //DO SOME EXTRA STUFF

           }
      }
});
它的工作原理

每个日期选择器都使用
.datepicker
类并执行第一个函数,但当您单击
#myDate
日期选择器时,它会获得
$(此)
的id属性,根据jquery UI日期选择器API:

onSelect函数

选择日期选择器时调用。函数接收 所选日期作为文本,日期选择器实例作为参数。
引用关联的输入字段


因此,
获取当前单击的日期选择器。然后,您可以将ID与您希望它匹配的元素进行比较,然后执行第二个功能。

对不起,如果“#myDate”元素被“选中”,这只会运行第二个功能吗?否its将同时运行它们,您想禁用第一个并运行另一个?好的,但我只想在选择了“#myDate”日期选择器。我将尝试在我的问题中提供和示例。查看我的更新,看看这是否解释了我试图实现的目标。它似乎没有达到我希望它做的事情。选择任何日期选择器都可以执行其功能。但是选择#myDate日期选择器不会执行第二个功能。