Javascript Jquery使用.parent()将2个数据与2个正文相乘
如何使用to.parent().find()将文本框与2 t体相乘我尝试使用它,但它不起作用。 在我的html中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
<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之后,它就不能工作了。你能帮我吗