javascript - 对于使用 Inputmask 插件屏蔽的 texbox,第一次无法在月份字段中键入 01
问题描述
我有一个文本框,它附有一个 Datepicker 用于选择日期,同时我必须为从键盘手动输入日期做好准备。我已经使用来自 Github 的插件 inputmask js 实现了该功能。但是,当页面首次加载并且我尝试将月份值输入为 1 月的“01”时,应用于文本框的屏蔽显示“10”。解决方法是我可以输入“11”,然后将第一个数字更改为 0,但我希望避免这种情况。我希望我能让你们理解这个问题在此先感谢,我已经将问题浓缩成一个简单的代码如下。
PS:我不希望占位符文本改变,如下面的答案所述。它应该是“00/00/0000”,但允许用户键入 01。
var maskConfig = {
leapday: "29-02-",
separator: "/",
showMaskOnHover: false,
showMaskOnFocus: false,
placeholder: "00/00/0000"
}
$('#datepicker1').inputmask('mm/dd/yyyy', maskConfig);
$('#datepicker1').datepicker({
dateFormat: "mm/dd/yy",
changeMonth: true,
changeYear: true,
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.3.4/jquery.inputmask.bundle.min.js"></script>
<input type="text" id="datepicker1"/>
解决方案
更改此行
placeholder: "00/00/0000"
至:
placeholder: "01/00/0000"
var maskConfig = {
leapday: "29-02-",
separator: "/",
showMaskOnHover: true,
showMaskOnFocus: true,
placeholder: "01/00/0000"
}
$('#datepicker1').inputmask('mm/dd/yyyy', maskConfig);
$('#datepicker1').datepicker({
dateFormat: "mm/dd/yy",
changeMonth: false,
changeYear: false,
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.3.4/jquery.inputmask.bundle.min.js"></script>
<input type="text" id="datepicker1"/>
推荐阅读
- vue.js - 如何从另一个数据属性访问 Vuejs 数据属性?
- bash - 命令在 docker 中手动成功,但不是通过 bash 脚本
- java - 在运行时将信息保存在 JAR 旁边
- amazon-web-services - 使用 AWS KMS 进行 PGP 解密?
- spring - Spring 异常处理程序 - 处理多个异常
- javascript - 脚本 google sheet 表单自动完成和填充单元格
- html - Outlook 2019 上的额外空间。右侧和左侧
- kotlin - 一个以单个 lambda 表达式为主体的 Kotlin 函数
- spring - @One-to-Many 关系在 Spring 中不起作用
- javascript - 为什么我的代码中没有运行 jQuery 文档就绪函数?