2014-01-09 1 views
0

jquery.maskedinput 플러그인으로 포커스를받을 때 입력 요소에 마스크를 적용하고 싶습니다. 처음 초점이 맞춰지면 가면은 없습니다. 두 번째로 포커스를받을 때만 마스크가 나타납니다. 포커스를 처음받을 때 마스크를 표시하려면 어떻게해야합니까?마스크가 적용되지 않는 이유는 무엇입니까?

fiddle

HTML :

<input type=text id=a /> 
    <input type=text id=b /> 

스크립트

$(document).ready(function() { 
    $('#a').on('focus', function() { 
     $(this).mask('999'); 
    }); 
}); 

답변

2

문제는 위젯이 마스크를 추가하는 데 초점()를 사용한다는 사실입니다. 이벤트는 이벤트가 발생한 후 등록하기 때문에 이미 집중되어 있습니다. 페이지가

$(function() { 
    $('#a').mask('999') 
}); 

을 만들 때

작동해야하는 방법은 등록하는 것입니다하지만 당신이 그것을 onfocus 및 수행하려는 경우, 당신은 당신이에 갇혀되지 않도록 이벤트를 제거한 후 초점을 실행하는 데 필요 루프.

$(function() { 
    $('#a').on('focus.first', function() { 
     $(this).off("focus.first").mask('999').trigger("focus"); 
    }); 
}); 
+0

다른 방법으로'.one'을'on' /'off' 대신에 사용하여 한 번만 호출해야한다는 것을 명확히 할 수 있습니다. –