Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
Javascript 动态应用JQuery掩码_Javascript_Jquery_Jquery Ui - Fatal编程技术网

Javascript 动态应用JQuery掩码

Javascript 动态应用JQuery掩码,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我有一个文本字段,当用户键入第一个字符时,我必须应用两个掩码中的一个 这些规则是: 如果用户键入“#”,则要应用的掩码为“#9999999” 如果用户键入数字,则要应用的掩码为“999.999.999-99” 我生成的JavaScript是 (function () { var oldVal; $('#id').on('keypress paste textInput input', function () { var val = this.value; if ((val

我有一个文本字段,当用户键入第一个字符时,我必须应用两个掩码中的一个

这些规则是:

  • 如果用户键入“#”,则要应用的掩码为“#9999999”
  • 如果用户键入数字,则要应用的掩码为“999.999.999-99”
  • 我生成的JavaScript是

    (function () {
      var oldVal;
      $('#id').on('keypress paste textInput input', function () {
        var val = this.value;
        if ((val != oldVal) && (val.length == 1)) {
          oldVal = val;
          if(oldVal == '#'){
            $('#id').mask('999999999');
            $('#id').val(oldVal)
          }else{
            $('#id').mask('999.999.999-99');
            $('#id').val(oldVal)
          }
        }else if(val.length == 0) {
          $('#id').unmask();
        }
      });
    }());
    
    幸运的是,正确应用了遮罩。问题是第一个字符丢失了

    例如:

  • 当我键入012.345.678-99时,该字段将获得\U 12.345.678-99
  • 类似地,当我键入#2001120001时,该字段将获得2001120001
  • 我做错了什么


    谢谢大家!

    我不确定这是否是你想要的,但是

    该插件尝试在每次按键时应用掩码。稍微修改一下掩码(以及翻译,因为“#”被认为是一个数字占位符),插件就可以处理整个输入行并屏蔽它

    if (oldVal == '#') {
        $('#id').mask('#999999999', {"translation": {"#": null}});
        $('#id').val(oldVal);
    } else {
        $('#id').mask('999.999.999-99');
        $('#id').val(oldVal);
    }
    
    它在这把小提琴里起作用


    再一次,我不确定这是否是你想要的。

    我不确定这是否是你想要的,但是

    该插件尝试在每次按键时应用掩码。稍微修改一下掩码(以及翻译,因为“#”被认为是一个数字占位符),插件就可以处理整个输入行并屏蔽它

    if (oldVal == '#') {
        $('#id').mask('#999999999', {"translation": {"#": null}});
        $('#id').val(oldVal);
    } else {
        $('#id').mask('999.999.999-99');
        $('#id').val(oldVal);
    }
    
    它在这把小提琴里起作用


    再一次,我不确定这是否是你想要的。

    我不确定这是否是你想要的,但是

    该插件尝试在每次按键时应用掩码。稍微修改一下掩码(以及翻译,因为“#”被认为是一个数字占位符),插件就可以处理整个输入行并屏蔽它

    if (oldVal == '#') {
        $('#id').mask('#999999999', {"translation": {"#": null}});
        $('#id').val(oldVal);
    } else {
        $('#id').mask('999.999.999-99');
        $('#id').val(oldVal);
    }
    
    它在这把小提琴里起作用


    再一次,我不确定这是否是你想要的。

    我不确定这是否是你想要的,但是

    该插件尝试在每次按键时应用掩码。稍微修改一下掩码(以及翻译,因为“#”被认为是一个数字占位符),插件就可以处理整个输入行并屏蔽它

    if (oldVal == '#') {
        $('#id').mask('#999999999', {"translation": {"#": null}});
        $('#id').val(oldVal);
    } else {
        $('#id').mask('999.999.999-99');
        $('#id').val(oldVal);
    }
    
    它在这把小提琴里起作用


    同样,我也不确定这是否是您要查找的内容。

    我使用以下代码来屏蔽澳大利亚联系人号码字段。当用户输入前两位或四位数字时,屏蔽规则将更新:

    // contactNumberOptions
    var contactNumberOptions =  {onKeyPress: function(cep, e, field, options){
        var masks = ['00 0000 0000', '0000 000 000', '0000 0000'];
    
        var prefix2 = cep.substring(0, 2);
        var prefix3 = cep.substring(0, 5);
        var prefix4 = cep.substring(0, 4);
    
        mask = masks[2];
    
        if( prefix2 == '02' || prefix2 == '03' || prefix2 == '07' || prefix2 == '08'){
            mask = masks[0];
        } else if( prefix2 == '04'){
            mask = masks[1];
        } else if( prefix4 == '1800' || prefix4 == '1900' || prefix4 == '1902'){
            mask = masks[1];
        } else  {
            mask = masks[2];
        }
    
        jQuery('input[name=contact-number]').mask(mask, options);
    
    }};
    
    jQuery('input[name=contact-number]').mask('0000 0000', contactNumberOptions);
    

    我使用以下代码来屏蔽澳大利亚联系人号码字段。当用户输入前两位或四位数字时,屏蔽规则将更新:

    // contactNumberOptions
    var contactNumberOptions =  {onKeyPress: function(cep, e, field, options){
        var masks = ['00 0000 0000', '0000 000 000', '0000 0000'];
    
        var prefix2 = cep.substring(0, 2);
        var prefix3 = cep.substring(0, 5);
        var prefix4 = cep.substring(0, 4);
    
        mask = masks[2];
    
        if( prefix2 == '02' || prefix2 == '03' || prefix2 == '07' || prefix2 == '08'){
            mask = masks[0];
        } else if( prefix2 == '04'){
            mask = masks[1];
        } else if( prefix4 == '1800' || prefix4 == '1900' || prefix4 == '1902'){
            mask = masks[1];
        } else  {
            mask = masks[2];
        }
    
        jQuery('input[name=contact-number]').mask(mask, options);
    
    }};
    
    jQuery('input[name=contact-number]').mask('0000 0000', contactNumberOptions);
    

    我使用以下代码来屏蔽澳大利亚联系人号码字段。当用户输入前两位或四位数字时,屏蔽规则将更新:

    // contactNumberOptions
    var contactNumberOptions =  {onKeyPress: function(cep, e, field, options){
        var masks = ['00 0000 0000', '0000 000 000', '0000 0000'];
    
        var prefix2 = cep.substring(0, 2);
        var prefix3 = cep.substring(0, 5);
        var prefix4 = cep.substring(0, 4);
    
        mask = masks[2];
    
        if( prefix2 == '02' || prefix2 == '03' || prefix2 == '07' || prefix2 == '08'){
            mask = masks[0];
        } else if( prefix2 == '04'){
            mask = masks[1];
        } else if( prefix4 == '1800' || prefix4 == '1900' || prefix4 == '1902'){
            mask = masks[1];
        } else  {
            mask = masks[2];
        }
    
        jQuery('input[name=contact-number]').mask(mask, options);
    
    }};
    
    jQuery('input[name=contact-number]').mask('0000 0000', contactNumberOptions);
    

    我使用以下代码来屏蔽澳大利亚联系人号码字段。当用户输入前两位或四位数字时,屏蔽规则将更新:

    // contactNumberOptions
    var contactNumberOptions =  {onKeyPress: function(cep, e, field, options){
        var masks = ['00 0000 0000', '0000 000 000', '0000 0000'];
    
        var prefix2 = cep.substring(0, 2);
        var prefix3 = cep.substring(0, 5);
        var prefix4 = cep.substring(0, 4);
    
        mask = masks[2];
    
        if( prefix2 == '02' || prefix2 == '03' || prefix2 == '07' || prefix2 == '08'){
            mask = masks[0];
        } else if( prefix2 == '04'){
            mask = masks[1];
        } else if( prefix4 == '1800' || prefix4 == '1900' || prefix4 == '1902'){
            mask = masks[1];
        } else  {
            mask = masks[2];
        }
    
        jQuery('input[name=contact-number]').mask(mask, options);
    
    }};
    
    jQuery('input[name=contact-number]').mask('0000 0000', contactNumberOptions);
    


    第一个字符由于掩码插件而丢失。我不能克服这个问题吗?你知道插件的名称吗?也许你可以克服这个问题,为“#”加一个默认前缀,或者其他一些东西来避免非零开始。如果字段还没有被屏蔽,那么总是屏蔽onBlur和屏蔽onSubmit是否可行?这是JQuery mask plugin()。第一个字符由于屏蔽插件而丢失。我不能克服这个问题吗?你知道插件名称吗?也许你可以克服这个问题,为“#”加一个默认前缀,或者其他一些东西来避免非零开始。如果字段还没有被屏蔽,那么总是屏蔽onBlur和屏蔽onSubmit是否可行?这是JQuery mask plugin()。第一个字符由于屏蔽插件而丢失。我不能克服这个问题吗?你知道插件名称吗?也许你可以克服这个问题,为“#”加一个默认前缀,或者其他一些东西来避免非零开始。如果字段还没有被屏蔽,那么总是屏蔽onBlur和屏蔽onSubmit是否可行?这是JQuery mask plugin()。第一个字符由于屏蔽插件而丢失。我不能克服这个问题吗?你知道插件名称吗?也许你可以克服这一点,为“#”加上一个默认前缀和其他一些东西来避免非零开始。如果字段还没有被屏蔽,总是屏蔽onBlur和屏蔽onSubmit是否可行?这是JQuery屏蔽插件()。Matt the fiddle正是我想要的。您的代码已使我的脚本在#案例中正常运行。但是,第二个案例(掩码“999.999.999-99”)也存在同样的问题。我的jquery版本是2.0。还有别的想法吗?小提琴手马特正是我想要的。您的代码已使我的脚本在#案例中正常运行。但是,第二个案例(掩码“999.999.999-99”)也存在同样的问题。我的jquery版本是2.0。还有别的想法吗?小提琴手马特正是我想要的。您的代码已使我的脚本在#案例中正常运行。但是,第二个案例(掩码“999.999.999-99”)也存在同样的问题。我的jquery版本是2.0。还有别的想法吗?小提琴手马特正是我想要的。您的代码已使我的脚本在#案例中正常运行。但是,第二个案例(掩码“999.999.999-99”)也存在同样的问题。我的jquery版本是2.0。还有别的想法吗?