2017-08-12 43 views
0

我希望用戶從引導日期選擇器組件中選擇一個日期,並將選定的值存儲在本地存儲中。當用戶完成他們的選擇時,他們可以選擇按鈕,然後ajax調用將使用本地存儲。引導日期選擇器和本地存儲

在這一刻我無法讓datepicker組件在本地存儲中設置一個值。日期選取器組件在用戶選擇時呈現,並且用戶的選擇變爲輸入字段的值。

下面是標記:

<form> 
    <div class="form-group"> 
     <label for="edge-name" class"control-label">Start:</label> 
     <input type="text" class="form-control" id="filterStart"> 
    </div> 
</form> 

和JavaScript

$(document).ready(function(){ 
    $('#filterStart').datepicker(); 
    $('#filterStart').on('changeDate' function(){ 
     var newValue = $('#filterStart').datepicker('getFormattedDate') 
     localStorage.setItem('filterStart',newValue); 
     }); 

我插入的console.log在各個地方的JavaScript,但代碼永遠不會寫入控制檯因此我知道它不寫入本地存儲。我知道本地存儲正在工作,因爲我正在使用代碼的其他部分。

此外,有關如何更好地做到這一點的任何建議將不勝感激。

回答

1

如果您正在使用此bootstrap-datepicker你可以看看下面的jsfiddle

$('#filterStart').datepicker(); 
$('#filterStart').on('changeDate', function (e) { 
    var newValue = $('#filterStart').datepicker('getFormattedDate') 
    localStorage.setItem('filterStart', newValue); 
}); 
$('#btn').on('click', function(e) { 
    $('#logMsg').val('Value saved in local storage is: ' + 
    localStorage.getItem('filterStart')); 
}) 
+1

這是我使用的答案,但根我的代碼不工作的原因是忘了在我的html中包含以下內容:https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/js/bootstrap-datepicker.js – ForgottenKahz

1

我找不到方法'getFormattedDate'存在,但有一個標準的getDate方法。順便說一下,你錯過了newValue定義行中的分號;

0

我想你可能會在changeDate事件中實例化一個新的日期選擇器。你可以嘗試從.data越來越格式化的日期:

var newValue = $('#filterStart').data('datepicker').getFormattedDate('yyyy-mm-dd');