我有一张桌子,每一行都有一个按钮,可打开Bootstrap Popover
,其中包含2个Bootstrap Datepicker
控件。当我点击日历或输入字段时,它们似乎工作得很好,它们打开,我可以选择一个新的日期,并且它可以正确显示。
问题在于虽然我可以在输入字段中看到正确的值,但我无法通过任何我知道的方式访问它们。
$('#<ID of the input>').val()
显示原始值,即加载页面时的值。 我试图使用浏览器的检查器,以确保没有重复的ID,并且原始输入没有被Datepicker替换,但看起来一切正常。
使用Datepicker的getDate
方法会得到类似的结果,无论我多久改变一次,它总会返回原始值。
如何使用jQuery
获取当前设置的值?
答案 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>
会立即解决问题。