bootstrap 日期选择器和本地存储

bootstrap datepicker and local storage

我希望用户 select 来自 bootstrap 日期选择器组件的日期,并将 selected 值存储在本地存储中。当用户完成 selection 后,他们可以 select 按钮,然后 ajax 调用将使用本地存储。

此时我无法让日期选择器组件在本地存储中设置一个值。当用户 selects 是并且用户的 selection 成为输入字段的值时,日期选择器组件呈现。

这是标记:

<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);
        });

我在整个 javascript 的各个地方插入了 console.log,但代码从未写入控制台,因此我知道它不会写入本地存储。我知道本地存储在工作,因为我在代码的其他部分使用它。

此外,如果您有任何关于如何更好地做到这一点的建议,我们将不胜感激。

我找不到方法 'getFormattedDate' 是否存在,但有一个标准的 getDate 方法。顺便说一下,您在 newValue 的定义行中错过了一个分号;

我认为您可能会在 changeDate 事件中实例化一个新的日期选择器。您可以尝试从 .data:

获取格式化日期
var newValue = $('#filterStart').data('datepicker').getFormattedDate('yyyy-mm-dd');

如果你正在使用这个bootstrap-datepicker you can take a look to the following 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'));
})