【问题标题】:Prevent user from entering invalid dateformat in Datepicker Textbox without disabling it防止用户在 Datepicker 文本框中输入无效的日期格式而不禁用它
【发布时间】:2018-11-19 05:24:26
【问题描述】:

我有一个要求,用户应该能够通过手动输入以及使用日期选择器在文本框中输入日期。我想防止用户在文本框中输入无效的日期格式。

例如:我使用mm/dd/yy格式,用户不能在mm栏输入超过12,并且在日期栏应该按照月份填写(30/31/28)等等。

我尝试过使用 datepicker 类的 constrainInput 属性,但它没有按预期工作。

$("#datepicker1").datepicker({
   constrainInput:"true",
   dateFormat:"mm/dd/yy"
});
<input type="text" id="datepicker1"/>

【问题讨论】:

标签: javascript jquery jquery-ui-datepicker


【解决方案1】:

本示例使用 inputmask 和 datepicker,您可以参考:

$("#datepicker1").datepicker({
   constrainInput:"true",
   dateFormat:"mm/dd/yy"
});


var maskConfig = {
      leapday: "29-02-",
      separator: "/",
      showMaskOnHover: false,
      showMaskOnFocus: false,
      placeholder: "__/__/____"
}

$('#datepicker1').inputmask('mm/dd/yyyy',maskConfig);
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.8.0/js/bootstrap-datepicker.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.3.4/jquery.inputmask.bundle.min.js"></script>

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

<input type="text" id="datepicker1"/>

【讨论】:

  • 在旁注中你能告诉我。为什么输入掩码无法识别“mm/dd/yy”格式?仅当参数为“mm/dd/yyyy”时才有效
  • 你可以参考 inputmask github.com/RobinHerbots/Inputmask 的文档,它只支持别名年份,模式是'yyyy'而不是'yy'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
  • 2022-12-15
  • 2016-04-02
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
相关资源
最近更新 更多