Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/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
Jquery 如何刷新日期选择器?function.datePickerMultiMonth()函数_Jquery_Datepicker - Fatal编程技术网

Jquery 如何刷新日期选择器?function.datePickerMultiMonth()函数

Jquery 如何刷新日期选择器?function.datePickerMultiMonth()函数,jquery,datepicker,Jquery,Datepicker,真的很喜欢约会采集器。非常感谢这个伟大的图书馆 在此示例中,我有一个问题要问您(内联日期选择器): 我添加了一个“renderCallback”功能来根据复选框禁用周天数。。。(例如,选中“星期六”复选框时,禁用显示的所有星期六) 当使用datePickerMultiMonth()初始化日历时,此操作非常有效 但是,当其中一个复选框发生更改(例如,取消选择星期一复选框)时,如何刷新内联日历 原样:当我选中/取消选中复选框时,日期选择器保持不变。。只有手动更改到下个月后,才会更新和禁用,例如所有

真的很喜欢约会采集器。非常感谢这个伟大的图书馆

在此示例中,我有一个问题要问您(内联日期选择器):

我添加了一个“renderCallback”功能来根据复选框禁用周天数。。。(例如,选中“星期六”复选框时,禁用显示的所有星期六)

当使用datePickerMultiMonth()初始化日历时,此操作非常有效

但是,当其中一个复选框发生更改(例如,取消选择星期一复选框)时,如何刷新内联日历

原样:当我选中/取消选中复选框时,日期选择器保持不变。。只有手动更改到下个月后,才会更新和禁用,例如所有周一。。。更改“星期一”复选框时,应立即执行此操作

你知道我如何刷新日期纠察吗?非常感谢你的帮助

干杯,
Markus

看了一下源代码后,似乎您必须执行以下操作:

$.event._dpCache[$('.date-pick')[0]._dpId]._applyRenderCallbacks()
或者可能是:

$.event._dpCache[$('.date-pick')[0]._dpId]._rerenderCalendar()
$.event.\u dpCache[$('.date pick')[0].\u dpId]
部分用于获取与css
'.date pick'
匹配的第一个内部日期选择器对象,这是访问内部
\u applyRenderCallbacks
\u rerenderCalendar
函数所需的


不幸的是,这确实访问了插件的内部结构,因此在新版本发布时它可能会中断,但是我找不到任何可公开访问的方法来刷新日历。

解决此问题的最简单方法可能是删除现有日历,然后重新发布它。e、 g:

$mm.empty().datePickerMultiMonth({});
但是,这有一些缺点,因为没有维护日期选择器的状态(例如,显示的月份、选定的日期等)

因此,我只是对插件做了一些更改,并引入了一种新方法:
dpmmRerenderCalendar
在多月选取器上(以及相应的
dprendercalendar
在日期选取器本身上)

您可以在此处看到一个正在运行的示例:

并且可以从我的网站或谷歌代码库中获取最新的插件代码

.datepicker( "refresh" )
你可以在网上找到它
单击“方法”选项卡

很好的检测工作和很好的解决方法,因为公众无法访问插件的相关方法。。。在回答问题时,这将是最好的解决办法。我刚刚更新了插件,这样rerender方法就可以公开使用,这使得解决方案更易于维护……清除旧设置删除日期选择器并重新创建它可能是最好的选择。只需使用.datepicker(“销毁”),然后在回调中重新初始化。