如何使用jquery在datatable中选择输入
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用jquery在datatable中选择输入相关的知识,希望对你有一定的参考价值。
我正在使用创建行函数生成数据表中的行,我想选择add_quantity
字段和price_input
字段并进行一些计算并在DataTable中每行的total_price
字段中显示它们
我正在做这样的事情,但我只能获得行的唯一第一行字段休息仍未计算
这就是我在cart_table
中创建行的方法
var t = $('#cart_table').DataTable();
// $('#add-to-cart_table').on( 'click','.btn-cart', function () {
t.row.add( [
$(this).data('id'),
$(this).data('name'),
(`<input type="text" id="add_qty" class="prdt-qty" style="width:30px">`),
(`
<div class="form-check form-check-inline">
<label class="form-check-label">
<input class="form-check-input" type="checkbox" checked id="price_checkbox">
</label>
<input type="text" id="price_input" value= "`+$(this).data('by_p') +`" class="disable-form">
</div>
`),
(`<input type="text" disabled id="total_price" class="prdt-qty" style="width:30px">`),
('<a href="#" class="btn btn-xs btn-delete"><i class="fa fa-trash-o"></i></a>')
] ).draw( false );
这就是我选择行字段来计算的方法
$('#cart_table').on('click', 'tr', function () {
var table = $('#cart_table').DataTable();
var data = table.row(this);
var qty = $('#add_qty').val();
var price = $('#price_input').val();
$('#add_qty').on('keyup',function(){
qty = $(this).val();
if(qty >=1 ){
$('#total_price').val(qty*price);
}
else{
$('#total_price').val(qty);
}
console.log(qty);
console.log(price);
})
console.log(data);
} );
答案
因为你在多个元素上使用相同的id。 id是唯一的,不要在多个元素上使用相同的id。你可以用class代替。
$('#price_input')=>仅返回第一个元素,其中id = price_input $('。price_input')=>返回class = price_input的所有元素
但是我们可以使用$('input [id =“price_input”]')=>返回属性id = price_input的所有元素来破解它
$('#cart_table').on('keyup', 'input[id="add_qty"]', function () {
var tr= $(this).find('tr');
var qty = $(this).val();
var price = tr.find('#price_input').val();
if(qty >=1 ){
tr.find('input[id="total_price"]').val(qty*price);
}
else{
tr.find('input[id="total_price"]').val(qty);
}
console.log(qty);
console.log(price);
});
以上是关于如何使用jquery在datatable中选择输入的主要内容,如果未能解决你的问题,请参考以下文章
在 JQuery Datatable 中选择另一个页面后如何重绘 Datatable?
如何在DataTables 1.10中使用JQuery DataTables“input”插件