将jquery掩码添加到输入,将0删除为默认值

时间:2018-08-08 08:16:50

标签: jquery input

我想在输入上使用https://igorescobar.github.io/jQuery-Mask-Plugin/,所以我可以定义掩码,因此在输入的开头总是有两个零。插件以某种方式将0识别为其他内容...

例如,我想在输入的开头输入00,因此用户可以添加手机的其余部分“ 00 49 355-559”,并且掩码为“ 0000-000-000”。希望有两个2的掩码,因为“ 2200-000-000”将始终在开头处加上22。那么如何在开始时设置零?

我已经尝试过使用jquery这样的方法,但到目前为止,它仅适用于粘贴事件,因为我不希望值最初存在于此,只有当用户开始在输入中键入或粘贴值时才可以。

$('#myInput').mask("0000-000-000");
$('#myInput').on("paste", function () {
        $(this).val("000-0");
    });

1 个答案:

答案 0 :(得分:0)

使用可用的选项,例如 onKeyPress onChange

  $(document).ready(function() {
   var options = {
     onComplete: function(cep, event, currentField) {
       console.log('OK CEP Completed!:' + cep);
       var prefix = "00";
       var val = cep;
       if (val.indexOf(prefix) !== 0) {
         event.target.value = prefix + val;
       }
    },
    onKeyPress: function(cep, event, currentField, options) {
      console.log('OK A key was pressed!:', cep, ' event: ', event,
        'currentField: ', currentField, ' options: ', options);
       var prefix = "00";
       var val = event.target.value;
       if (val.indexOf(prefix) !== 0) {
         event.target.value = prefix + val;
       }    
    },
    onChange: function(cep, event) {
      console.log('OK cep changed! ', cep);
      var prefix = "00"
      if (cep.indexOf(prefix) !== 0) {
        event.target.value = prefix + cep;
      }
    },
    onInvalid: function(val, e, f, invalid, options) {
      var error = invalid[0];
      console.log("Digit: ", error.v, " is invalid for the position: ", error.p, ". We expect something like: ", error.e);
    }
  };


  $('#text').mask('0000-000-000', options);

});