브라질에서는 일부 전화 번호가 9 자리이지만 기본값은 8입니다. 일부 개발자는 jQuery Maskedinput 플러그인을 사용하여 일부 솔루션을 작성했습니다. 나는이 기능을 가지고 :이미 DB에서 채워진 입력을 올바르게 마스크하는 방법은 무엇입니까?
$("#telephone").mask("(99) 9999-9999?9");
$("#telephone").blur(function(event) {
if($(this).val().length == 15){
$('#telephone').mask('(99) 99999-999?9');
} else {
$('#telephone').mask('(99) 9999-9999?9');
}
});
가 기능 : 전화 번호가 8 개 자리가있는 경우, 그것은 9 자리를 무시하고 (11) 0000-0000입니다 기본 형식, 같은 값을 떠난다. 전화 번호가 9 자리 인 경우 두 번째 블록에서 첫 번째 숫자를 가져 와서 첫 번째 블록의 끝에 둡니다. 예 : this (11) 9123-45678은 (11) 91234-5678이되므로 여기서 4 번은 제거되었습니다. 마지막 그룹부터 삽입하여 1 그룹 끝 부분에 삽입하면 첫 번째 그룹은 5 자리 숫자가됩니다.
문제는 입력이 이미 db에서 채워지면 마스크가 적용되지 않고 "흐림"에서만 작동한다는 것입니다. 입력 값에 9 자리가 있는지 확인한 다음 마스크가 흐리게 처리되도록 적용하는 방법이 있습니까?
또한 코드를 다시 사용할 가능성이 있으므로 매개 변수로 요소 ID를 전달하는 함수로 변환해야합니다 (이상적인 ID는 1 ID 이상일 수 있음). 도와 ...
mask_phone('#telephone, #fax');
감사를
function mask_phone(inputID) {
$k(inputID).mask("(99) 9999-9999?9");
$k(inputID).blur(function(event) {
if($k(this).val().length == 15) {
$k(inputID).mask('(99) 99999-999?9');
} else {
$k(inputID).mask('(99) 9999-9999?9');
}
});
}
가 호출 : 그래서, 아래의 기능을 만들었습니다,하지만 난 제대로 호출하고 있는지 확실하지 않습니다!
고마워, 내가 살펴볼거야! BTW, 예, 나는 "가능성이 희박한"질문을 많이 겪었습니다. 그것에 대해 말해주십시오. : - 브라질은 개발자 나 심지어 프런트 엔드 친구들에게 고통입니다. – joaogdesigner
어쩌면 저기에 있을지도 모릅니다. 내가 얻을 수없는 것.이 [CodePen] (http://codepen.io/Bes7weB/pen/QpVVZE)이 onload 값에 아주 효과적이기 때문에 나를 밝혀주십시오 ... 'blur'처럼. 그래서 나는 그렇지 않습니다. 더 복잡한 스크립트를 사용해야하는 이유를 얻으십시오. (나는 너무 anwer에 대해서도 ... –