jQuery:输入的值不保存在变量中

时间:2018-03-26 22:26:57

标签: javascript jquery

我无法保存变量中输入的内容。它保存为空格或如果它是一个整数:0

这是我的代码:

function attachKeyupEventDescuento(inputElement, i) {
  var cantidad = $('#txt_compras_cantidad' + i).val()
  var costo = $('#txt_compras_costoUni' + i).val()
  total = (cantidad * costo)
  $(inputElement).keyup(function() {
    console.log(total)
    if (inputElement.val() !== '') {
      var descuento = inputElement.val()
      var descuentoTotal = ($('#txt_compras_cantidad' + i).val() * $('#txt_compras_costoUni' + i).val()) - ($('#txt_compras_cantidad' + i).val() * $('#txt_compras_costoUni' + i).val() * (descuento / 100))
      $('#spn_compras_total' + i).text(descuentoTotal.toFixed(2))
      sumarprecioFinal()
    } else {
      $('#spn_compras_total' + i).text(($('#txt_compras_cantidad' + i).val() * $('#txt_compras_costoUni' + i).val()).toFixed(2))
    }
  })
}

让我解释一下代码:

var cantidad = $('#txt_compras_cantidad' + i).val()
var costo = $('#txt_compras_costoUni' + i).val()

如果我将它们保存在那些变量中,我会得到一个空白区域,但是如果我使用它们而不将它们保存在变量中,它们就能完美地运行。为什么会这样?

从我在表格中创建新行的按钮调用此函数。 inputelement是附加keyup事件的当前输入。

1 个答案:

答案 0 :(得分:0)

请查找更新的代码

function attachKeyupEventDescuento(inputElement, i) {
  var cantidad = parseInt($('#txt_compras_cantidad' + i).val());
  var costo = parseInt($('#txt_compras_costoUni' + i).val());
  var total = (cantidad * costo)
  $(inputElement).keyup(function() {
    console.log(total)
    if ($(inputElement).val() !== '') {
      var descuento = parseInt($(inputElement).val());
      var descuentoTotal = (cantidad * costo) - (cantidad * costo * (descuento / 100));
      $('#spn_compras_total' + i).text(descuentoTotal.toFixed(2))
      sumarprecioFinal()
    } else {
      $('#spn_compras_total' + i).text((cantidad * costo).toFixed(2))
    }
  })
}

当您从输入中获取值时,它始终是一个字符串。尝试解析输入的值。