获得点击事件的NaN

时间:2011-07-01 19:54:00

标签: javascript

我有一个简单添加字段2和字段的脚本3,但因为我已将数字格式化为货币($x,xxx.xx),所以field1返回NaN。在进行计算之前,是否可以从数字中删除$符号?我假设逗号和句号不会导致同样的问题。

onclick="document.getElementById('field1').value = (Math.round((parseFloat(document.getElementById('field2').value,2)*100))/100 + Math.round((parseFloat(document.getElementById('field3').value,2)*100))/100).toFixed(2);"  

在点击计算按钮之前,我正在格式化添加的数字onblur="forA();"(用户离开字段时):

function forA() { 
    document.getElementById('fieldY').value = "$" + addCommas1(document.getElementById('fieldZ').value); 
} 

function addCommas1(nStr) {
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}

1 个答案:

答案 0 :(得分:3)

在进行计算之前,只需删除所有非点/数字

var currency = "$2,358.88";
var number = Number(currency.replace(/[^0-9.]+/g,""));