用于文档前导零和从右到左的 jQuery 掩码

标签 jquery mask

大家好,

我在应用程序中的几个字段中使用 jquery.maskedit 插件,但我无法弄清楚如何编写这样的掩码:

文档:000000-0

我需要该字段始终填充零并且方向从右到左。

是否有任何 jQuery 插件或者有人知道如何使用 jquery.maskedit 设置此掩码?

最佳答案

免责声明:存在错误。但这是实现这一目标的一种方法。

JSFiddle

$.fn.specialMask = function () {
  this.on('click focus', function () { 
      var self = this; 
      setTimeout(function() {self.value = self.value;}, 15); //move cursor to end
  }) 
  .on('keypress', function (e) {
      var 
          num,
          $this = $(this),
          cur = $this.val().match(/Document: ([0-9]*\-[0-9])/); //get value

      if (cur[1][0] !== '0') { return; } //input is full

      if (e.keyCode >= 48 && e.keyCode <= 57) { //numeric keys
          num = e.keyCode - 48;
      } else if (e.keyCode >= 96 && e.keyCode <= 105) { //numpad
          num = e.keyCode - 96;
      } else { 
          return;   
      }
      cur = cur[1].replace('-', '').substr(1) + '-' + num; //shift value left
      $this.val('Document: ' + cur); //update input
  });
};

$('#tehInput').mask('Document: 999999-9', {placeholder: '0'}).specialMask(); // initialize the input

我使用了jquery.maskedinput.js,因为我找不到你提到的maskedit插件。如果您有链接,请尝试将其添加到 jsfiddle - 我希望这可以与其他插件类似地工作?

如果占位符未内置于插件中,则从右到左替换占位符很难伪造(如上所示)。我曾经做过的一个更简单的技巧是制作一个像这样的假输入:

<div class="input-wrapper">
    <span class="input-pre"></span>
    <input type="text">
</div>

然后,您可以将包装器设置为看起来像普通输入,将实际输入设置为没有边框的空白白色,并在包装​​器上发生“单击”事件时将输入聚焦。将前导 0 放入预跨度中,用 JS 保持更新,没有人会更明智!

关于用于文档前导零和从右到左的 jQuery 掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4875308/

相关文章:

javascript - 如何显示结束日期和截止日期 31-03

image-processing - 带掩码的聚类

python - 如何用列名填充数据框的真实值?

c# - 在 C# 中格式化日期时间

python - 功能变化不大。面具。 Python

javascript - 接受日期掩码中的一位数字日期/月份

javascript - 使用 JavaScript 将标记添加到 Highstock 图表 (highcharts)

javascript - jQuery 自动完成特殊字符

javascript - 我如何在jquery中获取预约时间(从时间,到时间)

jquery - 使用 validate 时更改 select 的类