jQuery价格增加与html号码

时间:2015-12-08 13:26:48

标签: javascript jquery

我正在创建一个电子商务,我想根据所选商品的数量设置一个动态价格。我不知道怎么做,有人可以帮助我吗?

这是我的情况:

https://jsfiddle.net/sucwcokv/

<input type="number" min="0" value="0" title="Qta" class="input-text qty text" />

2 个答案:

答案 0 :(得分:0)

我希望我理解正确,这就是你的意思:

https://jsfiddle.net/sucwcokv/1/

我添加了一些JQuery:

$(document).ready(function() {
    var id = $(".input-text").attr("id");
    $('input#' + id).on('change', function() {
      $(".amount." + id).html(this.value);
    })
})

注意

我不建议将它用于某种重要的电子商务数据。这是一个安全风险。一定要使用服务器端语言(我认为在大多数情况下它是PHP)保护所有使用某种jquery制作的东西,因此用户没有机会操纵任何东西。

答案 1 :(得分:0)

这是我做的小提琴:

https://jsfiddle.net/sucwcokv/4/

它增加了总数,但我会回应@Marcel Wasilewski所说的,仅在javascript中运行这种价格计算并不是一个好主意,因为它对用户操作非常开放。

小提琴的一个问题;它似乎与数字的准确性有关,例如,它有时会增加反复出现的数字。当变量在不同类型之间转换时,我已经在其他语言中看到过这种情况,但我还没有想到这一点。有人可以确认是什么原因导致的任何帮助将不胜感激。

我使用JQuery加快速度,但如果你想要纯粹的JS ......你可能需要考虑转换它:

$(document).ready(function() {

  var subtotals = [];

  $('.input-text').change(function() {

    updateTotal();

  });

});

function getRowSubtotal(rowToTotal) {
  var currentQty = $(rowToTotal).find('input').val();

  var thisPrice = $(rowToTotal).find('ins').find('span.amount').text();

  thisPrice = thisPrice.replace('€', '');
  thisPrice = thisPrice.replace(',', '.');

  return Number(thisPrice) * currentQty;
}

function updateTotal() {

  subtotals = [];

  $('.input-text').each(function() {
    var thisRow = $(this).parent().parent().parent();

    subtotals.push(getRowSubtotal(thisRow));
  });

  var total = 0;
  for (var i = 0; i < subtotals.length; i++) {
    total += subtotals[i];
  }

  $('#total').text('Total: ' + total + '€');

  console.log(total);

}