JavaScript:函数未正确格式化数字
我有一个函数,每4个数字放一个逗号,这样它的格式就是货币。问题是前4个数字没有在应该添加逗号的地方添加逗号,它只在输入空格时正确设置所有内容的格式。另外,为什么我的输入允许输入空格键,而我将其设置为不允许?谢谢JavaScript:函数未正确格式化数字,javascript,Javascript,我有一个函数,每4个数字放一个逗号,这样它的格式就是货币。问题是前4个数字没有在应该添加逗号的地方添加逗号,它只在输入空格时正确设置所有内容的格式。另外,为什么我的输入允许输入空格键,而我将其设置为不允许?谢谢 <script> //Gets the value of the key that was pressed function keypress(e){ var z=""; var min
<script>
//Gets the value of the key that was pressed
function keypress(e){
var z="";
var minStr = document.getElementById('min').value;
var charval = String.fromCharCode(e.keyCode);
var backspaceKey = String.fromCharCode(8);
var tabKey = String.fromCharCode(9);
var enterKey = String.fromCharCode(13);
var spaceBarKey = String.fromCharCode(32);
//Validates that only numbers and specific types of keys can be entered
if( isNaN(charval) &&
charval != backspaceKey &&
charval != tabKey &&
charval != enterKey &&
charval == spaceBarKey){
return false;
}
//Start of the function that adds commas
if(minStr.length > 1
&& charval != backspaceKey
&& charval != tabKey
&& charval != enterKey
){
//adds commas to the string
minStr = minStr.replace(/\D/g, "");
var minArray = minStr.split("");
var j = 0;
for(var i = minStr.length; i > 0; i--){
if(j == 3){
minArray.splice(i, 0, ",");
j = 0;
}
j++;
}
minArray = minArray.join("");
document.getElementById('min').value = minArray;
//Here is where it adds a comma to the first 4 numbers
if(minStr.length == 4){
var minArray = minStr.split("");
minArray.splice(1, 0, ",");
minArray = minArray.join("");
document.getElementById('min').value = minArray;
}
}
}
</script>
<body>
<input type="text" name="min" id="min" class="mini" onkeydown="return keypress(event)" placeholder="Enter the Min">
<input type="text" name="max" id="max" onkeydown="return keypress(event)" placeholder="Enter the Max">
</body>
//获取按下的键的值
功能按键(e){
var z=“”;
var minStr=document.getElementById('min')。值;
var charval=String.fromCharCode(e.keyCode);
var backspaceKey=String.fromCharCode(8);
var tabKey=String.fromCharCode(9);
var enterKey=String.fromCharCode(13);
var spaceBarKey=String.fromCharCode(32);
//验证是否只能输入数字和特定类型的密钥
如果(伊斯南(夏瓦尔)&&
charval!=退格键&&
charval!=tabKey&&
查瓦尔!=enterKey&&
charval==spaceBarKey){
返回false;
}
//添加逗号的函数的开头
如果(minStr.length>1
&&charval!=退格键
&&charval!=tabKey
&&查瓦尔!=enterKey
){
//在字符串中添加逗号
minStr=minStr.替换(/\D/g,“”);
var minArray=minStr.split(“”);
var j=0;
对于(变量i=minStr.length;i>0;i--){
如果(j==3){
拼接(i,0,“,”);
j=0;
}
j++;
}
minArray=minArray.join(“”);
document.getElementById('min')。value=minArray;
//在这里,它在前4个数字中添加了一个逗号
如果(minStr.length==4){
var minArray=minStr.split(“”);
拼接(1,0,“,”);
minArray=minArray.join(“”);
document.getElementById('min')。value=minArray;
}
}
}
演示:我已经更新了您的代码-
keydown--> keyup
String.fromCharCode(e.keyCode)--> e.keyCode(used direct keycode)
检查一下-
您可以使用