2010-06-24 3 views
10

I는 지퍼 필드를 마스킹하기위한 요구가있다.jQuery를 우편 마스킹

I 수 있도록 같은 :

$('#myZipField').mask("?99999-9999"); 

하지만 합병증은 사용자가 5 자리에두고있는 경우 대시가 표시되어서는 안된다는 사실에서 비롯됩니다.

이것은 제가 지금까지 생각해 낸 최고입니다. 6 번째 숫자를 삽입 할 때 대시를 자동 삽입하도록 확장 할 수는 있지만이 문제는 삭제시 재미있는 행동이 될 수 있습니다. 대시하지만 패치를 패치하는 것 등, 그것은 악몽)이된다 :이 일의 상자 비켜가 어떤인가

$.mask.definitions['~']='[-]'; 
$("#myZipField").mask("?99999~9999", {placeholder:""}); 

또는 내 자신의 롤해야합니까?

+1

나는이 같은 문제를 가지고, 당신을했다 적절한 해결책을 찾아내는가? 감사! –

+1

@BenL. 정말 - 나는 여러 텍스트 상자이 도움이 될 – JohnIdol

+0

의 필드를 분할 결국 : https://igorescobar.github.io/jQuery-Mask-Plugin/ –

답변

9

당신을 출시 할 거라고 생각하지 않는다 다른 플러그인을 사용할 필요가 없습니다. 그냥 물음표를 이동, 그래서 대신 :

$('#myZipField').mask("?99999-9999"); 

사용한다 : 모든 후

$('#myZipField').mask("99999?-9999"); 

를, 그것은 단지 - 및 이후의 선택 사항입니다 전체 문자열이 아니다.

-1

왜 필드가 투명하고 밝은 회색의 양식 뒤에 텍스트 개체가 있나요? 그들이 입력 #### 배경, 다음 장비에 그렇게 문자가 퀘스 트 로그에서 사라질 - 그래서 그들은 #######을 참조하십시오. 그 시점에서, 그것은 그들이 여분 네 넣어하려는 경우가 바로 대시를 입력해야합니다 제안? 그런 다음, 당신은 단지 장비가 하이픈을 autoinsert하는 스크립트 수 그들이 난장판을 입력 6 번호 경우? 이미 jQuery를 사용하는 경우

0

이 우편 번호가 실제로 간단하지만 당신이 처리 할 수있는 더 복잡한 형식이있을 때, 여기 그것이합니다 (demo page)에서 플러그인으로 해결 될 방법은 다음과 같습니다

var options = {onKeyPress: function(cep, e, field, options){ 
    var masks = ['00000-000', '0-00-00-00']; 
    mask = (cep.length>7) ? masks[1] : masks[0]; 
    $('.crazy_cep').mask(mask, options); 
}}; 

$('.crazy_cep').mask('00000-000', options);