2016-11-20 3 views
1

입력란에 Numeral.js 형식으로 서식을 지정하고 싶습니다.numeric.js 라이브 서식

나는 이런 식으로 시도했다.

$('#exchangeInputFirst').keyup(function() { 
//eur formatting 
      numeral.language('sk'); 
      $('#exchangeInputFirst').val(numeral($('#exchangeInputFirst').val()).format('0,0.00$'); 

//to HUF format   $('#exchangeInputSecond').val($('#exchangeInputFirst').val()*$('#first').html()); 
      numeral.language('hu'); 
      var string = numeral($('#exchangeInputSecond').val()).format('0,0.00$'); 
      $('#exchangeInputSecond').val(string); 
     }); 

두 번째 기능은 (HUF 형식으로) 완벽하게 작동하지만 첫 번째 기능은 완벽하지 않습니다.

답변

0

나는 당신이 숫자 언어 파일을 누락 생각 : 나는 언어의 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')); 

내 업데이트 미리보기를 참조하십시오. 이제는 원하는대로 작동합니다.

+0

이상한데, 나는 보통 첫 번째 필드에 숫자를 입력 할 수 없습니까? https://gyazo.com/b208be037e9ad619a6d82d8d73b88975 – Adrian

+0

숫자 서식을 적용하려면? 첫 번째 입력'keyup' 이벤트가 발생했습니다. 그런 다음 첫 번째 필드에서 키를 누르면 커서가 새로 적용된 문자열 끝에 오게됩니다. 텍스트 입력이 작동하는 방식이기 때문입니다. 또한 두 번째 입력은 첫 번째 입력에서 키를 누를 때까지 서식을 업데이트하지 않습니다. 당신이 여기에 갖고 싶은 정확한 행동은 무엇입니까? –

+0

흠. 입력 할 때 입력 번호를 즉시 포맷하고 싶습니다. keyup 함수가 내가 찾고있는 함수가 아닙니까? – Adrian