Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery使用.parent()将2个数据与2个正文相乘_Javascript_Jquery_Laravel - Fatal编程技术网

Javascript Jquery使用.parent()将2个数据与2个正文相乘

Javascript Jquery使用.parent()将2个数据与2个正文相乘,javascript,jquery,laravel,Javascript,Jquery,Laravel,如何使用to.parent().find()将文本框与2 t体相乘我尝试使用它,但它不起作用。 在我的html中 <table> <tbody> <tr> <td><input type="text" name="quantity_box[0]" class="form-control a" /></td> <td><input type="text" name="u

如何使用to.parent().find()将文本框与2 t体相乘我尝试使用它,但它不起作用。 在我的html中

<table>
  <tbody>
    <tr>
      <td><input type="text"  name="quantity_box[0]" class="form-control a" /></td>
      <td><input type="text"  name="unit_price[]" class="form-control b" /> </td>
      <td>display in <input type="text" name="price[] "  class="form-control price" autofocus=" " /> </td>
    </tr>
  </tbody>
  <tbody id="row1">
    <tr>
      <td><input type="text"  name="quantity_box[0]" class="form-control a" /></td>
      <td><input type="text"  name="unit_price[]" class="form-control b" /> </td>
      <td>display in <input type="text" name="price[] "  class="form-control price" autofocus=" " /> </td>
    </tr>
  </tbody>
</table>
已更新

我使用append生成新行,但它仍然不能工作,不知道该怎么做

var i = 0;
var id_i = 1;
    $(document).ready(function() {
        $('#add-form').click(function() {
            i++;
            id_i++;                     
            $('#add-me').append(
                '<tbody id="row'+i+'"><tr>'+
                +'<td>'
                +'</td>'
                +'<td class="col-md-1">'
                +'<input type="text"  name="quantity_box[0]" class="form-control a" />'
                +'</td>'
                +'<td class="col-md-1">'
                +'<input type="text"  name="unit_price[]" class="form-control b" />'
                +'</td>'
                +'<td class="col-md-1">'
                +'<input type="text" name="price[0]" id="price" class="form-control price" autofocus="" />'
                +'</td>'    
                +'</tr></tbody>'
            );
        });
    });
var i=0;
变量id_i=1;
$(文档).ready(函数(){
$(“#添加表单”)。单击(函数(){
i++;
id_i++;
$(“#添加我”)。附加(
''+
+''
+''
+''
+''
+''
+''
+''
+''
+''
+''
+''    
+''
);
});
});

您必须到达
tr

$('table').on('keyup','input.a,input.b',function() {

    var $row = $(this).closest('tr');
    var textValue1 = $row.find('input.a').val();
    var textValue2 = $row.find('input.b').val();

    $row.find('input.price').val(textValue1*textValue2); 

});
其他选择

$('table').on('keyup','input.a,input.b',function() {
    var $row = $(this).closest('tr');
    $row.find('input.price').val($('input.a',$row).val() * $('input.b',$row).val());
});

您必须到达
tr

$('table').on('keyup','input.a,input.b',function() {

    var $row = $(this).closest('tr');
    var textValue1 = $row.find('input.a').val();
    var textValue2 = $row.find('input.b').val();

    $row.find('input.price').val(textValue1*textValue2); 

});
其他选择

$('table').on('keyup','input.a,input.b',function() {
    var $row = $(this).closest('tr');
    $row.find('input.price').val($('input.a',$row).val() * $('input.b',$row).val());
});

正如@a.lglesias所建议的,只是代码中的一个小改动

  $('.a,.b').keyup(function() {

      var $row = $(this).closest('tr');
      // reason to put 1 is because if one text has value 9 and other is empty than the ouput will be 0
      var textValue1 = $row.find('input.a').val() == "" ? 1 : 
      $row.find('input.a').val();
      var textValue2 = $row.find('input.b').val() == "" ? 1 : 
       $row.find('input.b').val();

       $row.find('input.price').val(textValue1*textValue2); 

  });

正如@a.lglesias所建议的,只是代码中的一个小改动

  $('.a,.b').keyup(function() {

      var $row = $(this).closest('tr');
      // reason to put 1 is because if one text has value 9 and other is empty than the ouput will be 0
      var textValue1 = $row.find('input.a').val() == "" ? 1 : 
      $row.find('input.a').val();
      var textValue2 = $row.find('input.b').val() == "" ? 1 : 
       $row.find('input.b').val();

       $row.find('input.price').val(textValue1*textValue2); 

  });


你升得不够高。对于每个
.a
.b
元素,父元素是各自的
td
——在该元素中查找对应的其他b/a元素当然找不到任何内容,因为该元素不在该td中。请改用
parents('tr')
。您应该阅读jQuery文档并学习遍历DOM树的所有方法。谢谢您的建议,我会接受的。您的级别不够高。对于每个
.a
.b
元素,父元素是各自的
td
——在该元素中查找对应的其他b/a元素当然找不到任何内容,因为该元素不在该td中。请改用
parents('tr')
。您应该阅读jQuery文档并学习遍历DOM树的所有方法。谢谢您的建议,我将继续使用它,否则输出将为0$行.find('input.a')。val()=“”?1:$row.find('input.a').val();嗯。。。对不起,我不同意。。。在这种情况下,如果一个字段为空,则结果必须为0。他在计算总价,所以如果你没有奖品或者你没有很多物品,结果必须是零。对我来说更有意义。任何价格计算都应该是A(10)+B(0)+C(0)=应该是10。在您的情况下,结果是0。。。。。因此,在我的方法中,我们可以将0改为1。顺便说一下,他的代码在进行乘法运算,所以它应该仅为1。@Kamal No,检查每个输入的含义。价格计算为数量*单价。如果数量或价格为0,则总数必须为0。应使用三元条件,否则输出将为0$行.find('input.a')。val()=“”?1:$row.find('input.a').val();嗯。。。对不起,我不同意。。。在这种情况下,如果一个字段为空,则结果必须为0。他在计算总价,所以如果你没有奖品或者你没有很多物品,结果必须是零。对我来说更有意义。任何价格计算都应该是A(10)+B(0)+C(0)=应该是10。在您的情况下,结果是0。。。。。因此,在我的方法中,我们可以将0改为1。顺便说一下,他的代码在进行乘法运算,所以它应该仅为1。@Kamal No,检查每个输入的含义。价格计算为数量*单价。如果数量或价格为0,则总数必须为0。这在第一个tbody中效果很好,但在第二个tbody中效果不好,不确定可能我有两个tbody?为我工作。。。结帐很好谢谢我想我应该看看我的HTML有些东西应该是错误的,不用担心。。只要你有我和@A.Iglesias的两种方法……我更新了我的问题,你的两种代码都可以工作,但在我使用了genrate新行的append之后,它就不能工作了。你能帮我吗?这在第一个tbody中工作得很好,但在第二个tbody中它不工作,不确定我可能有两个tbody?为我工作。。。结帐很好谢谢我想我应该看看我的HTML有些东西应该是错误的,不用担心。。只要你有我和@A.Iglesias的两种方法……我更新了我的问题,你的两种代码都可以正常工作,但是在我使用了genrate新行的append之后,它就不能工作了。你能帮我吗