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

I want add two numbers and display the total - removing the comma breaks the function

我想将两个数字相乘并显示在 table 的末尾。

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

$(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();
    });

});

替换后需要再次解析为float!

替换创建一个字符串,如您在此处所见: https://www.w3schools.com/jsref/jsref_replace.asp

试试这个:

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 中的值将是字符串。逗号替换后。

此代码替换浮点解析之前第一个表达式本身中的逗号。所以,$no1 和 $price1 是浮动的。

希望对您有所帮助。