use*_*897 6 javascript jquery input masking
我想在不更改实际值的情况下屏蔽输入框中的文本。我不能使用任何插件。
我目前正在执行此操作-但您可以看到问题是提交时实际值已更改。如何更改显示值?
$("input[name='number']").focusout(function(){
var number = this.value.replace(/(\d{2})(\d{3})(\d{2})/,"$1-$2-$3");
this.value = number;
}
Run Code Online (Sandbox Code Playgroud)
Dom*_*ana 10
两个输入即可完成工作。一个输入将包含被遮罩的文本,另一个输入将是包含实际数据的隐藏输入。
<input type="text" name="masknumber">
<input type="text" name="number" style="display:none;">
Run Code Online (Sandbox Code Playgroud)
我采用掩蔽的方式是构建用于掩蔽和反掩盖内容的函数,以便所有内容保持统一。
$("input[name='masknumber']").on("keyup change", function(){
$("input[name='number']").val(destroyMask(this.value));
this.value = createMask($("input[name='number']").val());
})
function createMask(string){
return string.replace(/(\d{2})(\d{3})(\d{2})/,"$1-$2-$3");
}
function destroyMask(string){
return string.replace(/\D/g,'').substring(0,8);
}
Run Code Online (Sandbox Code Playgroud)