2016-06-17 1 views
0

나는 만들기 위해 암호 필드에 플러그인 마스크 입력 (jquery.maskedinput.min.js)를 적용하려고 :암호 입력란에 마스크 입력 플러그인을 적용하는 방법은 무엇입니까?

****-****-**** 

그것은 기본적으로 대시로 구분 등록 키입니다.

$(document).ready(function(){ 
     $("#registrationKey").mask("9999-9999-9999"); 

     $("#registrationKey").keyup(function(e) { 
       self = $(this); 
       rkValue = self.val().replace(/[^\d\-]/g, ''); 
       self.val(rkValue); 
       console.log("value = " + rkValue); 
       self.attr("regKey", rkValue); 
     }); 
}); 

<input type="password" id="registrationKey" name="registrationKey" regKey="" maxlength="15" autocomplete="off" > 

2 가지 문제가 있습니다. 첫 번째는 마스크가 적용되어 필드가 이미 채워져 있다는 것입니다. 두 번째 문제는 네 번째 자릿수마다 대시가 적용되지 않는다는 것입니다.

순수 자바 스크립트 또는이 플러그인을 통해이를 수행 할 수있는 방법이 있습니까?

그런데 다른 게시물에서 비슷한 것을 보았습니다. 그러나 사용자가 필드 중간에 마우스를 놓거나 텍스트의 일부 섹션을 강조 표시하고 삭제하면 매우 버그가 발생합니다.

아이디어가 있으십니까?

감사합니다.

+0

입력 유형 암호를 사용하면 놀랄 것입니다. 브라우저는 항상 점들을 보여주는 상사입니다. 정말 필요한 경우 여러 입력 필드 또는 암호 문자를 위조 할 수있는 단일 텍스트 필드를 사용하십시오. –

답변

0

저는 작업중인 프로젝트에서 비슷한 작업을 수행하고있었습니다. 나는 마스크로 기본 텍스트 입력을 사용했고, 이벤트 코드로는 keydownpaste을 사용했다. 붙여 넣은 텍스트는 작동하지 않지만 사용자가 필드에 무엇인가 붙여 넣어 마스크를 변경하지 못하게합니다.

여기 JSFiddle 예 : https://jsfiddle.net/apy5am74/을 찾을 수 있습니다.

관련 문제