나는 당신이 숫자 언어 파일을 누락 생각 : 나는 언어의 js 파일을 포함하지 않는
<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.5.3/languages.min.js"></script>
내가 당신의 상황을 재현 할 수 없습니다. 귀하의 예제를 시도하고 첫 번째 입력 상자에 키를 누르면 :
var a = false;
$('#exchangeInputFirst, #exchangeInputSecond').click(function() {
\t $(this).caret(0);
});
$('#exchangeInputFirst, #exchangeInputSecond').keyup(function(){
\t if(a == false){
\t \t $(this).val('');
\t \t a = true
\t } else {
\t \t numeral.language($(this).data('language'));
\t \t $(this).val(numeral($(this).val()).format('0,0.00$'));
\t \t $(this).caret(0);
\t }
});
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.5.3/numeral.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.5.3/languages.min.js"></script>
<script src="http://zikro.gr/dbg/html/jquery.caret/dist/jquery.caret-1.5.2.min.js"></script>
<input type="text" data-language="sk" id="exchangeInputFirst">
<input type="text" data-language="hu" id="exchangeInputSecond">
UPDATE
을 또한 커서 위치에 문제가 있습니다. 당신은 때마다 문자는 다음과 같이 입력하는 입력의 beggining에 캐럿 위치를 설정하려면이 jQuery 플러그인 acdvorak/jquery.caret를 사용하여이 문제를 해결 할 수 있습니다 또한
$(this).val(numeral($(this).val()).format('0,0.00$'));
$(this).caret(0);
을, 지금 data-language="sk"
와 같은 입력 데이터의 언어를 포함했다 이 같은 keyup
이벤트에서 직접 읽을 수 있습니다
numeral.language($(this).data('language'));
내 업데이트 미리보기를 참조하십시오. 이제는 원하는대로 작동합니다.
이상한데, 나는 보통 첫 번째 필드에 숫자를 입력 할 수 없습니까? https://gyazo.com/b208be037e9ad619a6d82d8d73b88975 – Adrian
숫자 서식을 적용하려면? 첫 번째 입력'keyup' 이벤트가 발생했습니다. 그런 다음 첫 번째 필드에서 키를 누르면 커서가 새로 적용된 문자열 끝에 오게됩니다. 텍스트 입력이 작동하는 방식이기 때문입니다. 또한 두 번째 입력은 첫 번째 입력에서 키를 누를 때까지 서식을 업데이트하지 않습니다. 당신이 여기에 갖고 싶은 정확한 행동은 무엇입니까? –
흠. 입력 할 때 입력 번호를 즉시 포맷하고 싶습니다. keyup 함수가 내가 찾고있는 함수가 아닙니까? – Adrian