使用jQuery从右到左屏蔽输入

Right to left mask input with jQuery

本文关键字:输入 屏蔽 从右到左 jQuery 使用      更新时间:2023-09-26

我在jQuery中输入了以下掩码:

  $("#id_Account").mask("9999",{placeholder:"0"})

这个文本框的当前行为是用零作为占位符来键入我只需要的数字,然后在键入enter后用0填充其余的数字。但我想在左侧填充0,而不是在键入后在右侧。

例如,我在文本框中输入"0000"(或仅为空),然后键入"12",然后文本框显示这个值:"1200",但我真正想要的是这个值:"0012"

听起来这是插件不支持的功能。它很简单,可以自己实现,为什么不创建它(并向插件发送PR来添加它)?

这里有一些东西可以让你开始:

function prependMask(input,mask) {
  var m_len = mask.length, i_len = input.length; // get |mask| - |input|
  if i_len <= m_len {
    return Array(m_len - i_len).join(mask[0]) + input; // prepend mask of length (|m| - |input|) to input
  } else { 
    return input; // no need for mask
  }
}

我用这样的东西实现了自己:

<input name="myaccount1" type="text" style="text-align:right" onchange="mask_account(this)">

这就是功能:

function mask_account(field_account){
            var qty_chars = field_account.value.length;
            var zeros = ''
            for (i=0; i < 4 - qty_chars; i++ ){
                zeros= zeros + '0';
            }
            var new_value = zeros + field_account.value;
            field_account.value = new_value;
        }