我需要将输入字段与货币格式相加到总输入。当它是唯一的数字时,我可以使它工作。这是我的小提琴:http://jsfiddle.net/nobuts/F2wEK/2/
onKeyUp
自动逗号功能正常工作但不能再对这些数字求和。
这是我的JS:
$(document).ready(function(){
$(".cost").each(
function(){
$(this).keyup(
function(){
calculateSum()
});
});
});
function calculateSum(){
var sum=0;
$(".cost").each(
function(){
if(!isNaN(this.value)&&this.value.length!=0){
sum+=parseFloat(this.value);
}
});
$("#sum").val(sum.toFixed(2));
}
$(document).ready(function(){
$('input.cost').keyup(function(event){
// skip for arrow keys
if(event.which >= 37 && event.which <= 40){
event.preventDefault();
}
var $this = $(this);
var num = $this.val().replace(/,/gi, "").split("").reverse().join("");
var num2 = RemoveRougeChar(num.replace(/(.
3})/g,"$1,").split("").reverse().join(""));
console.log(num2);
// the following line has been simplified. Revision history contains original.
$this.val(num2);
});});
function RemoveRougeChar(convertString){
if(convertString.substring(0,1) == ","){
return convertString.substring(1, convertString.length)
}
return convertString;
}
如果你们小提琴回复,我们将不胜感激。
答案 0 :(得分:2)
您需要删除号码中的逗号,以便isNaN()
将其识别为数字,因此,请替换以下代码:
if(!isNaN(this.value)&&this.value.length!=0){
sum+=parseFloat(this.value);
}
这个:
var vl = this.value.replace(',','');
if(!isNaN(vl) && vl.length!=0){
sum+=parseFloat(vl);
}
答案 1 :(得分:1)