2017-02-09 5 views
0

キー入力に次のJavaScript関数を使用して入力番号に1000の区切り文字を追加しています。キーアップイベントでJavaScriptを使用した1000個の区切り文字を追加

$("#inputId").on('keyup', function(evt){ 
    if (evt.which != 110 && evt.which != 190){ 
     var n = parseFloat($(this).val().replace(/\,/g,''),10);    
     $(this).val(n.toLocaleString()); 
    } 
}); 

予想通り、この機能が働いている例のほとんどが、唯一の問題は、(例えば、10 1)小数点以下のゼロを受け入れていない入力フィールドですが、それは同じ番号を受け入れません10. 5。私はこの動作の理由を理解することはできません。何か案が?

ありがとうございました。

+0

解析がどのdoesnのことから、 '0'を削除します'1.0' =>' 1' –

+1

'parseFloat(x、10)'は何をしますか? [MDNには引数が1つしかないと言われています] –

+0

'parseFloat'には基数引数がありません。だからです。 2番目の引数を追加しても意味がありません –

答えて

1

小数点で分割すると機能します。このようなもの。これは非常に基本的な出発点であり、他の国/システム内の異なるセパレータを考慮していない注意してください(例:10.000,00)

<script> 
 
var myinput = document.getElementById('myinput'); 
 

 
myinput.addEventListener('keyup', function() { 
 
    var val = this.value; 
 
    val = val.replace(/[^0-9\.]/g,''); 
 
    
 
    if(val != "") { 
 
    valArr = val.split('.'); 
 
    valArr[0] = (parseInt(valArr[0],10)).toLocaleString(); 
 
    val = valArr.join('.'); 
 
    } 
 
    
 
    this.value = val; 
 
}); 
 

 
</script>
<input id="myinput" type="text'>

+0

答えをありがとう、私の場合のために働いているようです。 – Lakmal

+0

@creative 15桁の入力値が0になった後。理由は何ですか ?? –

関連する問題