我需要一些帮助来解决此问题,我正在尝试在键入时从value
标记中打印出<input>
,它应该以千位分隔符打印出来,但是它返回的数字与我输入的一样,更确切地说,它不会工作。我该如何解决...?
function cDes(e) {
var k = e.currentTarget;
var prc = k.value; //example value: 123456789
var prc_f = prc.toLocaleString('de-DE');
var oDiv = document.getElementById('cOut');
if (e.keyCode == 13) {
if (prc.length < 1) {
oDiv.innerHTML = 'FREE';
} else {
oDiv.innerHTML = prc_f; //expected output value: 123.456.789
}
} else {
oDiv.innerHTML = '...';
}
}
<input type='number' id='price' onKeyUp='cDes(event)'>
<div id='cOut'></div>
最佳答案
使用Number.toLocaleString()
之前,将输入字符串转换为Number:
var prc_f = Number(prc).toLocaleString('de-DE');
例:
// get a reference to the element once
var oDiv = document.getElementById('cOut');
function cDes(e) {
var prc = e.target.value; //example value: 123456789
if (e.keyCode == 13) {
if (prc.length < 1) {
oDiv.innerHTML = 'FREE';
} else {
// you only need to convert the input when you display it
oDiv.innerHTML = Number(prc).toLocaleString('de-DE'); //expected output value: 123.456.789
}
} else {
oDiv.innerHTML = '...';
}
}
<input type='number' id='price' onKeyUp='cDes(event)'>
<div id='cOut'></div>
关于javascript - Javascript toLocaleString onKeyUp事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49973395/