Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自定义jQuery掩码插件_Jquery - Fatal编程技术网

自定义jQuery掩码插件

自定义jQuery掩码插件,jquery,Jquery,我用这个插件来屏蔽ssn# 我需要结果为***-***-***-*** 当用户键入时,我希望前面的字符替换为* 所以,如果我正在打字,并且我已经达到了我的第二个字符,它会像这样*2 我正在尝试使用他们的回调方法。我稍微修改了代码,以返回onChange方法中要返回的字符的位置 我下面的代码没有按我所希望的方式工作。任何人都可以查看并帮助我。 现在它正在替换错误位置的字符 var options = { onComplete: function(cep) {

我用这个插件来屏蔽ssn#

我需要结果为
***-***-***-***
当用户键入时,我希望前面的字符替换为* 所以,如果我正在打字,并且我已经达到了我的第二个字符,它会像这样<代码>*2 我正在尝试使用他们的回调方法。我稍微修改了代码,以返回onChange方法中要返回的字符的位置

我下面的代码没有按我所希望的方式工作。任何人都可以查看并帮助我。 现在它正在替换错误位置的字符

  var options =  {
        onComplete: function(cep) {
            console.log('CEP Completed!:' + cep);
        },
        onChange: function(val, pos, e, el, options){

            var newVal;
            var currentPos = pos;
            var lastPos =  currentPos -1;
            if(lastPos != 0){
                newVal = replaceAt(val, lastPos-1, '*');
            }else{
                newVal = val;
            }

            el.val( newVal );
        }
    };

    function replaceAt(s, n, t) {
        return s.substring(0, n) + t + s.substring(n + 1);
    }

    $("#ssn").mask("999-99-9999", options);

有人能帮上忙吗?简单的答案是将输入字段的类型设置为“密码”。这样做的好处是它将用项目符号替换任何输入。糟糕的是,这也意味着你的破折号“-”是一颗子弹。