4

如何在使用jquery的掩码时用'*'替换ssn的初始数字

例如: 123-45-6789 将被插入为 ***-**-6789 ,但是当我们获取值时,我们应该得到 123456789

4

2 回答 2

3

给定 HTML 如下:

<form id="ssn_form">
    <input name="ssn" id="ssn" type="text">
    <button id="submit">Submit</button>
</form>​

您可以将 SSN 存储在模糊的数据属性中并屏蔽该值。然后在提交表单时,您可以在提交表单之前将值重新填充到输入中:

var retrieveValue = function(ev){
        var $this = $(this),
            val = $this.data('value');

        if (val) {
            $this.val(val);
        }
    },
    hideValue = function(ev){
        var $this = $(this);

        $this.data('value', $this.val());
        $this.val($this.val().replace(/^\d{5}/, '*****'));
    };

$('#ssn').focus(retrieveValue);

$('#ssn').blur(hideValue);

$('#ssn_form').submit(function(ev){
    ev.preventDefault();
    retrieveValue.call($('#ssn')[0], ev);
    $(this).submit();
});

看演示

于 2012-06-21T06:20:16.187 回答
0

没有任何代码供应我认为这是你可以尝试的最好的:)

输入 - 123-45-6789

输出- ***-**-6789

检查这个——

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script>
function mask(f){
tel='';
var val =f.value.split('');
for(var i=0;i<val.length;i++){
if(i<3){val[i]='*'}
if(i<6 && i>3 ){val[i]='*'}
tel=tel+val[i]
}
f.value=tel;
}
</script>
</head>
<body>
<form>
<input name="phone" type="text" onblur="mask(this)">
</form>
</body>
</html> 
于 2012-06-21T06:16:06.533 回答