【发布时间】:2015-03-26 04:53:31
【问题描述】:
如果您使用autoclose: true 初始化bootstrap datepicker from eternicode,则会发生两种不良行为:
- 选择器关闭后,当您进入下一个字段时,您将再次从文档的开头开始。这在长表单上可能非常麻烦。
- 因为选择器以编程方式更改值,所以您关心的输入上的模糊事件的任何侦听器都不会正常运行。当您选择选择器值并且输入的值没有更改时,实际上会发生模糊。然后 bootstrap-datepicker 以编程方式更新该字段,因此永远不会使用新值触发模糊。
这是堆栈 sn-ps 中的演示:
*选择任何字段,从选择器中选择一个值,然后点击 Tab
$(".datepicker").datepicker({
autoclose: true
});
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/css/bootstrap.css" rel="stylesheet"/>
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.1/css/datepicker.css" rel="stylesheet"/>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/js/bootstrap.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.1/js/bootstrap-datepicker.js"></script>
<input type="text" class="datepicker" /><br/>
<input type="text" class="datepicker" /><br/>
<input type="text" class="datepicker" /><br/>
根据Focus the field after selecting the jQuery UI datepicker的回答,你可以点击onClose或onSelect事件,但是bootstrap picker doesn't offer those events。
简单地用hide 替换它们似乎也不起作用,因为重新聚焦将创建一个无限循环,在您尝试关闭它时始终保持选择器打开。
$(".datepicker").datepicker({
autoclose: true
})
.on('hide', function () {
$(this).focus();
});
堆栈片段演示:
$(".datepicker").datepicker({
autoclose: true
})
.on('hide', function () {
$(this).focus();
});
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/css/bootstrap.css" rel="stylesheet"/>
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.1/css/datepicker.css" rel="stylesheet"/>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/js/bootstrap.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.1/js/bootstrap-datepicker.js"></script>
<input type="text" class="datepicker" /><br/>
<input type="text" class="datepicker" /><br/>
<input type="text" class="datepicker" /><br/>
【问题讨论】:
标签: javascript jquery twitter-bootstrap datepicker bootstrap-datepicker