当我将jquery.inputmask插件从3.3.1升级到3.3.4时,我注意到mask的日期时间格式已更改。

// in version 3.3.1
$("#textbox").inputmask("y-m-d");
$("#textbox").inputmask("h:s");

// in version 3.3.4
$("#textbox").inputmask("yyyy-mm-dd");
$("#textbox").inputmask("hh:mm");

在v3.3.4中,字母“m”用于“月”和“分钟”,某些掩码定义可能会引起冲突,例如
$("#textbox").inputmask("yyyy-mm-dd hh:mm"); // ERROR! can't input anything into textbox
$("#textbox").inputmask("mm/dd/yyyy hh:mm xm"); // but this works fine

此问题仅在jquery.inputmask 3.3.4中发生

是虫子吗?如何使 mask "year-month-day hour:minute"在我的页面中起作用?

最佳答案

深入研究源代码之后,您似乎可以使用Inputmask.extendAliases通过为您的特定用例添加自定义别名来纠正错误:

Inputmask.extendAliases({
  "yyyy-mm-dd hh:mm": {
    mask: "y-1-2 h:s",
    placeholder: "yyyy-mm-dd hh:mm",
    alias: "datetime",
    separator: "-"
  }
})

$("#textbox").inputmask("yyyy-mm-dd hh:mm")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/RobinHerbots/Inputmask/3.x/dist/jquery.inputmask.bundle.js"></script>

<input id="textbox" type="text">

09-25 18:19