有没有办法在按键上应用掩码? (JQuery)

Is there a way to apply a mask on keydown? (JQuery)

我有这个面具:

$(".cep").mask("99999-999");

然而,当我按住数字键时,例如 1,它会非常快速地填充输入文本,以一种忽略掩码的方式(而不是“11111-111”,它填充为“111111111”),当与更改或按键等事件结合使用时,这是无法估量的残酷和容易出错的。

无论如何,有没有办法在按键上应用掩码,以便用户可以按住死按钮并绑定到它??

这是 HTML 上的 class:

<div class="input text col-sm-6 col-xs-6 required">
    <input name="data[Fornecedor][cep]" placeholder="* CEP" maxlength="20" type="text" id="FornecedorCep" required="required" class="cep">
</div>

试试这个:- 未测试

$('.cep').on('keydown keypress input blur', function(){
     $(this).mask("99999-999");
});

我在这里完全吐口水 - 我不知道 mask() 实际上是什么,如果它是一个插件你可能需要编辑它,但你可以设置一个非常快的间隔来应用它当他们按下一个键时,然后在 keyup 上终止间隔。

像这样:

   var maskInterval = null;
   $('.cep').on('keydown', function()
   {
      maskInterval = setInterval(function()
      {
            // Do whatever it takes to apply the mask here
            $('.cep').mask();
      }, 25);
   }).on('keyup', function()
   {
      clearInterval(maskInterval);
   });