我想添加两个数字并显示总数 - 删除逗号会中断函数

时间:2017-02-24 10:57:54

标签: javascript jquery

我想将两个数字放在一起并显示在表格的末尾。

代码一直有效,直到我尝试删除逗号。这是代码:

$(document).ready(function () {

    function calc() {
        var $no1 = ($.trim($('.no1').val()) != '' && !isNaN($('.no1').val())) ? parseFloat($('.no1').val()) : 0;

        var $no1 = ($('no1.').val()).replace(/,/g, '');

        console.log($no1);

        var $price1 = $(.trim($('.price1').val()) != '' && !isNaN($('.price1').val())) ? parseFloat($('.price1').val()) : 0;
        var $price1 = ($('.price1.').val()).replace(/,/g, '');

        console.log($price1);
        var n = $no1 * $price1;
        $('.sum1').val(n.toFixed(2));
    }

    $('.key1').keyup(function () {
        calc();
    });

});

2 个答案:

答案 0 :(得分:1)

试试这个:

var No1 = $.trim($('.no1').val()).replace(/,/g, '');
var $no1 = No1  != '' && !isNaN(parseFloat(No1)) ? parseFloat(No1) : 0;

var Price1 = $.trim($('.price1').val().replace(/,/g, '');
var $price1 = Price1 != '' && !isNaN(parseFloat(Price1)) ? parseFloat(Price1) : 0;

而不是

var $no1 = ($.trim($('.no1').val()) != '' && !isNaN($('.no1').val())) ? parseFloat($('.no1').val()) : 0;
var $no1 = ($('no1.').val()).replace(/,/g, '');
//
var $price1 = $(.trim($('.price1').val()) != '' && !isNaN($('.price1').val())) ? parseFloat($('.price1').val()) : 0;
var $price1 = ($('.price1.').val()).replace(/,/g, '');

错误是因为您正在使用逗号替换字符串分配具有浮点解析值的相同变量。

因此,$ no1和$ price1中的值将是字符串。逗号替换后。

此代码在Float Parsing之前替换第一个表达式本身的逗号。所以,$ no1和$ price1都是浮动的。

希望这有帮助。

答案 1 :(得分:0)

在进行替换后,您需要再次解析为浮动!

替换创建一个字符串,如下所示: https://www.w3schools.com/jsref/jsref_replace.asp