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
(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();
}
});
}());
幸运的是,正确应用了遮罩。问题是第一个字符丢失了
例如:
谢谢大家! 我不确定这是否是你想要的,但是 该插件尝试在每次按键时应用掩码。稍微修改一下掩码(以及翻译,因为“#”被认为是一个数字占位符),插件就可以处理整个输入行并屏蔽它
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。还有别的想法吗?