입력을 마스크 할 수있는 앱용 컨트롤을 만듭니다. 이것은 초기 사용자와 어떻게 설정했는지에 기초합니다. 원하는 패턴이 될 수 있습니다.패턴 정의시 백 스페이스 감지
방금 입력 한 내용을 삭제하려고 할 때를 제외하고는 멋지게 작동하는 코드가 있습니다. 사람들이 완벽했다면 찾아 낼 수 있습니다 만, 방금 타이핑 한 것을 지울 수있는 능력이 필요하지 않습니다.
백 스페이스가 발생했을 때이를 감지하는 방법이 있는지 궁금합니다.
이<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/ –