我正在爲我們的應用程序創建一個控件,允許它們屏蔽輸入。這是基於初始用戶以及他們如何設置的。它可以是任何他們想要的模式。定義圖案時檢測退格
我有一段奇妙的代碼,除非你刪除你剛輸入的內容。如果人們是完美的,這將會發現,但我們不需要刪除我們剛輸入的內容。
所以我想知道是否有一種方法來檢測他們是否退格。
我的HTML看起來像
<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所以你可以看到什麼正在發生。
這是非常錯誤的,我必須擊中退格兩次把它刪除X? – zazvorniki
嗨,我會在今天晚些時候看看這個:P您可能還想看看這樣做的一些jquery包:http://formvalidation.io/examples/mask/ –