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 に答える