0

我正在尝试使用 jQuery 计算物品的税金。我使用的 CRM 有一种叫做标签的东西,它采用 {tag_something} 的形式来动态地将信息读取到网页上。我想使用 jQuery 更新产品的价格。(稍后将针对国家特定税实施)。我拥有的代码正在更改原始价格,但不是将其更改为所需的价格,而是在页面上默认为“0”。任何想法或建议将不胜感激。我为此设置的产品是:http ://www.bemidjisportsonline.com/accessories/backpacks/klim-nac-pak

<!-- taxable items -->
jQuery(document).ready(function() {
    initUpdateTax();
}   
);
function initUpdateTax() {
var taxable = '{tag_taxcode}';
var saleprice = '{tag_saleprice}';
if  (taxable == "Accessories"){
    $('#taxable').text(function(saleprice) {
        return Math.round(parseInt(saleprice + (saleprice * 0.06875));  
    });
}
}
4

2 回答 2

0

在文本框的情况下再次调用该方法change..

$('.productTextInput').on('change', function() {
     initUpdateTax();
});

您似乎仅在页面第一次加载时才调用该方法。每当输入框发生变化时,您都需要再次调用它。

更好的

jQuery(document).ready(function () {
    // Change event
    $('.productTextInput').on('change', initUpdateTax)
        .change(); // Trigger the change on DOM ready
});

function initUpdateTax() {
    var saleprice = '{tag_saleprice}';
    // Find the corresponding element wherein the 
    // total price has to be shown
    var $total = $(this).closest('li')
        .prevAll('.price').first().find('strong');

    $total.text(function (saleprice) {
        return Math.round(parseInt(saleprice + (saleprice * 0.06875)));
    });

}
于 2013-07-08T19:24:17.560 回答
0

在您发布的链接之后,正在执行的代码是:

function initUpdateTax() {
    var taxable = 'Accessories';
    var saleprice = '$95.99';
    if  (taxable == "Accessories"){
        $('#taxable').text(function(saleprice) {
            return Math.round(parseInt(saleprice + (saleprice * 0.06875));  
        });
    }
    else {
    }
}

的值salesprice不是有效数字,因此乘法saleprice * 0.06875结果为NaN。表达式所在的行中也缺少括号return

此外,parseIntMath.round操作的使用没有多大意义,因为第一个的返回值是一个整数,四舍五入时就是它本身。价值税的应用可以用以下更简洁(恕我直言)的方式表示saleprice * 1.06875

这是执行您期望的功能的一个版本:

function initUpdateTax() {
    var taxable = '{tag_taxcode}';
    if  (taxable == "Accessories"){
       var saleprice = $('#taxable').text();
       var price = parseFloat(saleprice.replace('$', '')) * 1.06875;
       $('#taxable').text('$' + price.toFixed(2));
    }
    else {
    }
}
于 2013-07-08T19:27:39.687 回答