如何将输入值传递给同一行上的另一个输入

时间:2015-08-28 07:51:12

标签: jquery

我有一个文本框数量和文本框unit_price连续。现在我想将qty的值传递给unit_price。我能够获得qty的值但是我不能将值传递给它的unit_price行,而是将qty值传递给每个unit_price的行。

HTML:

<table class="data">
<tr>
    <td><input="text" class="qty" name="qty[]"></td><td><input="text" class="unit_price" name="unit_price[]"></td>
</tr>
<tr>
   <td><input="text" class="qty" name="qty[]"></td><td><input="text" class="unit_price" name="unit_price[]">
   </td>
</tr>
<tr>
    <td><input="text" class="qty" name="qty[]"></td><td><input="text" class="unit_price" name="unit_price[]">
    </td>
</tr>

这是我的jquery:

$('table.data').on('change','.qty',function(){
  var val = $(this).parent().parent().find('input[type=text]').val();
  alert(val);
  $(".unit_price").parent().parent().find('input[type="text"]').val(val);
})

需要一些关于如何将qty的值传递给unit_price的帮助。

4 个答案:

答案 0 :(得分:2)

您需要使用.closest()两次来到最近的父级而不是.parent(),并确保使用this位于选择器的上下文中:

$('table.data').on('change','.qty',function(){
  var val = $(this).val();
  alert(val);
  $(this).closest('tr').find(".unit_price").val(val);
})

答案 1 :(得分:0)

假设检索单价是正确的。 使用jquery prev()函数查找上一个文本框。

var unitPriceObj = $(this).parent().parent().find('input[type=text]');
var unitPrice = unitPriceObj .val(); // get unit price value
unitPriceObj.prev('input').val(unitPrice ); // assign it to qty

答案 2 :(得分:0)

你走了:

$('table.data').on('change','.qty',function() {
  var qtyInput = $(e.target)

  qtyInput.parents("tr").find('.unit_price').val( qtyInput.value );
})

答案 3 :(得分:0)

或使用.next()方法获取以下内容

$('table.data').on('change','.qty',function(){
    $(this).parent().next().find(".unit_price").val($(this).val());
})