2017-08-12 44 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');