簡體   English   中英

從外部更新bootstrap-datepicker

[英]Update bootstrap-datepicker externally

我在multiselect +內聯模式下使用Bootstrap-datepicker ,我需要使用一些預選的日期從外部對其進行更新。 我已經進行了一些研究,但似乎無濟於事。 請記住,我處於angularJS上下文中,而datepicker在angular指令內。 到目前為止我嘗試過的事情:

1。

element.data('datepicker').dates = myDatesArray;

這設置了日期,但是發生了一些奇怪的事情,渲染日歷時,我設置的所有日期都顯示了-3小時的時間偏移(請記住,我不需要date對象的時間部分)。 我曾嘗試在每個日期執行諸如.addHours(3,0,0,0) ,然后再將其提供給控件,並且發生了甚至更奇怪的事情:日期設置如預期的那樣,但是卻發生了某些事情(顯然我沒有知道為什么),然后控件將其禁用。 因此,日期是同時選擇和禁用的,這是廢話,因為用戶無法再取消選擇它們。

2。

我發現了一個SO問題並從那里嘗試了一些方法,例如:

$('.datepicker').datepicker('setDate', new Date('2014-06-12')); $('.datepicker').datepicker('setValue', '2014-06-19').datepicker('update'); $('.datepicker').datepicker('update', '2014-06-29');

這些中的每一個都會使日期選擇器再渲染一次。 如果我將這些包含在循環中以遍歷數組中的所有日期,那么我將擁有與所選日期一樣多的日歷。

3。

我還嘗試在控件內部創建一個方法,類似它的beforeShowDay ,但這也不起作用,因為該控件所使用的內部數組當時沒有公開,所以我遇到了一些錯誤。

如果需要,我可以添加angular指令,但是我認為它不太相關。

PS:我對jQuery並不了解太多,我覺得我的臉上有些明顯的空白,因為我看到很多人聲稱第二種方法(實際上都是)對他們有用。 任何幫助將不勝感激。

好的,根據要求,我創建了一個JSFiddle。 這是: 小提琴

您可以設置輸入值,該值是日期/時間選擇器的來源,然后調用

$(sourceelement).val(newvalue);
$(sourceelement).datepicker('update');

好的,我知道了。 我還不知道為什么,但是在做$('.datepicker').datepicker('setDate', new Date('2014-06-12')); 控件復制自身。 但是,為此,我已經做了類似的事情: element.datepicker({/*init stuff here*/}).datepicker('setDate', date); 這可以按預期工作,它可以按需要設置數組,如果我要取消選擇它應該可以工作的東西,也可以這樣做。 這也適用於日期數組。 這是工作的小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM