Bootstrap datepicker无法正确更新

时间:2017-05-21 21:13:01

标签: javascript jquery twitter-bootstrap bootstrap-datepicker bootstrap-popover

我有一张桌子,每一行都有一个按钮,可打开Bootstrap Popover,其中包含2个Bootstrap Datepicker控件。当我点击日历或输入字段时,它们似乎工作得很好,它们打开,我可以选择一个新的日期,并且它可以正确显示。

问题在于虽然我可以在输入字段中看到正确的值,但我无法通过任何我知道的方式访问它们。

$('#<ID of the input>').val() 

显示原始值,即加载页面时的值。 我试图使用浏览器的检查器,以确保没有重复的ID,并且原始输入没有被Datepicker替换,但看起来一切正常。

使用Datepicker的getDate方法会得到类似的结果,无论我多久改变一次,它总会返回原始值。

如何使用jQuery获取当前设置的值?

1 个答案:

答案 0 :(得分:0)

问题是我以下列方式初始化了弹出窗口:

<div id="popoverCnt" style="display:none;">
    ... content ...
    <div class="input-group date" data-provide="datepicker" id="date_1" data-date-format="yyyy-mm-dd">
        <input class="form-control" name="dateval1" id="dateval1" type="dateISO" required placeholder="yyyy-mm-dd">
        <div class="input-group-addon">
            <span class="glyphicon glyphicon-th"></span>
        </div>
    </div>
    ... more content ...
</div>

<a tabindex="1" data-toggle="popover" id="pop1">Open popover</a>

<script>
    $("#pop1").popover({
        html: true,
        placement: 'bottom',
        trigger: 'click',
        content: function () {
            return $('popoverCnt').html();
        }
    });
</script>

意味着popover的内容是从现有的<div>加载而来的。{1}}。因此,datepicker以一种奇怪的方式附加了 - 它显示正确,但所选的值会写入重复的,不可见的div的{​​{1}}。

input以来,检查员中看不到重复的display:none;

input的{​​{1}}代码更改为<div>会立即解决问题。