Bootstrap日期选择器在手动输入期间未验证格式

时间:2017-01-11 20:02:12

标签: javascript date bootstrap-datepicker

我使用bootstrap-datepicker.js(版本1.6.1)显示一个dd / mm / yyyy格式的简单日期选择器。

它初始化如下:

 $e.datepicker({
      format: "dd/mm/yyyy"
     , endDate: ed // end date
     , autoclose: true
     , startDate: sd // start date
     , language: lang
 });

如果用户浏览日历并点击所需的日期,则datepicker工作正常并且日期正确设置为可配置格式。

但问题来自于他在输入上手动输入日期。

如果用户手动输入DD / MM / YY ,那么该值正被datepicker接受,并且不会自动转换为DD / MM / YYYY

有谁知道这是对datepicker库的限制还是我在这里错过了一些配置?。

1 个答案:

答案 0 :(得分:0)

我认为你可以使用

onkeydown="return false" 

避免手动输入。如果没有,您必须编写JS来格式化日期。 Datepicker自动从手动输入转换。



$('#txtDob').datepicker({
  format: 'dd/mm/yyyy',
  autoclose: true  
});

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.css" rel="stylesheet" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/css/bootstrap-datepicker3.css" rel="stylesheet" />

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/js/bootstrap-datepicker.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.4/locales/bootstrap-datepicker.de.min.js"></script>

<form action="#" method="post">
  <label for="txtDob"></label>
  <input onkeydown="return false" type="text" id="txtDob" />
</form>
&#13;
&#13;
&#13;