入力をマスクすることができるアプリケーションのコントロールを作成しています。これは、初期ユーザーとその設定方法に基づいています。彼らが望むどんなパターンでもよい。パターンを定義するときにバックスペースを検出する
私は、あなたが今入力したものを削除する場合を除いて、すばらしい働きをするコードを持っています。これは人々が完璧だった場合には見つかるでしょうが、私たちがちょうどタイプしたものを削除する必要はありません。
だから、バックスペーシング時に検出する方法があるのだろうかと思います。
が<p class="maskNum">
<input type="text" class="form-control mask" autocomplete="off" maxlengthsocial="9" maxlength="11" />
<input type="text" class="form-control maskval" autocomplete="off" maxlengthsocial="9" maxlength="9" />
</p>
私のCSSは
.maskNum {
position: relative;
}
.maskval {
position: absolute;
top: 0;
color: black;
background: transparent !important;
border: none;
left: 0;
-webkit-text-fill-color: transparent; //sets just the text color
height: 1.5em;
}
input {
height: 2em;
width: 50%;
border-radius: .5em;
padding-left: 0.5em;
}
のように見え、私のjQueryの
var pattern = 'xxx-xx-0000';
var maxLength = pattern.length;
var maxLenthNum = pattern.replace("-", "").length;
$('.mask').attr('maxlength', maxLenthNum);
$('.maskval').attr('maxlength', maxLength);
$('.maskval').on('keyup keydown change', function() {
var input = $(this).val();
var output = "";
for (var x = 0; x < input.length; x++) {
if (x < pattern.length) {
output = pattern[x] == 'x' ? output + 'x' : output + input[x];
} else
output += input[x];
}
if (input.length < pattern.length && pattern[input.length] == '-') {
output += '-';
$(this).val(output);
} else {
$(this).prev('input').val(output);
}
});
のように見え、実際の例は、それはhttp://codepen.io/zazvorniki/pen/XKNXJgので、あなたが正確に何を見ることができるように
私のhtmlが見えます起こっている。
これは非常にバギーですが、私はそれがXを削除持って二回バックスペースを打つ必要がありますか? – zazvorniki
もう一度、今度はこれを後で見ていきます:Pこれを行ういくつかのjqueryパッケージを見てみることもできます:http://formvalidation.io/examples/mask/ –