将输入值添加到数据库值

时间:2017-12-27 10:56:36

标签: javascript jquery

我正在开发一个项目,我必须在输入值中添加数据库值。

<div>
    <div class="price">680</div>
    <div class="price">
        <input type="number" name="name">
    </div>
</div>

在上面的代码中,680将来自数据库。在这里,我想为680添加一个输入数字。我是jQuery的新手。

我的JavaScript代码

    $(document).ready(function() {
        var total = 0;
        $("input").keyup(function(){
            var priceList = $('.price');
            $.each(priceList, function(i, price){
                total += parseFloat($(price).text());
            });
            alert(total);
        });
    });

</script>

在此输出“NaN”。

2 个答案:

答案 0 :(得分:4)

  

在此输出“NaN”。

你得到这条消息,因为你试图遍历div并解析它们的文本,当它为空时。你需要循环遍历input

您可以使用数据库值初始化total,然后遍历input并在每次迭代中将解析后的值添加到total。

注意:当您跟踪用户输入时,请使用input事件,因为它更有效。

多项投入:

$(document).ready(function() {
  var db_val = parseFloat($('.price:first').text());
  var total = 0;

  $(".price input").on('input', function() {
    var total = db_val;

    $('.price input').each(function() {
      total += parseFloat($(this).val()) || 0;
    });

    $(".total").text(total);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
  <div class="price">680</div>
  <div class="price">
    <input type="number" name="name">
  </div>
  <div class="price">
    <input type="number" name="name">
  </div>
  <div class="price">
    <input type="number" name="name">
  </div>
  <div class="total">680</div>
</div>

单一输入:

$(document).ready(function() {
  var db_val = parseFloat($('.price:first').text());
  var total = 0;

  $(".price input").on('input', function() {
    var total = db_val;

    total += parseFloat($(this).val()) || 0;

    $(".total").text(total);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
  <div class="price">680</div>
  <div class="price">
    <input type="number" name="name">
  </div>
  <div class="total">680</div>
</div>

答案 1 :(得分:1)

在这里

var result = 0;
var price = +$('#price').text();

$('input[type="number"]').on('input', function() {
  var val = +$(this).val();
  result = parseInt(val + price);
  $('#price').text(result)
  console.log(result);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <div class="price" id="price">680</div>
  <div class="price">
    <input type="number" name="name">
  </div>