请帮助我如何:
如果选中了复选框父项,则检查所有同级对象;如果还选中了复选框的某些子项,则还必须选中父项。我怎样才能做到这一点?
我在laravel代码中有这个:
<table class="table table-hover" id="tableOrders">
<thead class="thead-inverse">
<tr>
<th width="4%"><input type="checkbox" id="selectAll" /></th>
<th width="7%">USER ID</th>
<th width="12%">AMOUNT</th>
<th width="15%">SHIP DATE</th>
<th width="15%">RECEIVER</th>
<th width="20%">ADDRESS</th>
<th width="14%">MOBILE #</th>
</tr>
</thead>
<tbody>
<?php $i=0 ?>
@foreach($shippings as $data)
<tr>
<td><input type="checkbox" class="parent" name="shippings[][]" value="{{ $data->shipping_id }}" /> </td>
<td><a href="#" data-value="{{ $data->user_id }}" class="linkedit"> {{ $data->user_id }} </a></td>
<td><a href="#" data-value="{{ $data->total_amount }}" class="linkedit"> {{ $data->total_amount }} </a></td>
<td><a href="#" data-value="{{ $data->shipping_date }}" class="linkedit"> {{ $data->shipping_date }} </a></td>
<td><a href="#" data-value="{{ $data->shipping_receiver }}" class="linkedit"> {{ $data->shipping_receiver }} </a></td>
<td><a href="#" data-value="{{ $data->shipping_address }}" class="linkedit"> {{ $data->shipping_address }} </a></td>
<td><a href="#" data-value="{{ $data->mobile_number }}" class="linkedit"> {{ $data->mobile_number }} </a></td>
</tr>
<tr>
<td></td>
<td></td>
<td><p style="font-weight:bold;">Product Name</p></td>
<td><p style="font-weight:bold;">Price</p></td>
<td><p style="font-weight:bold;">Ordered Qty</p></td>
<td><p style="color:red;font-weight: bold;">Available Qty</p></td>
</tr>
@foreach($data->products as $product)
<tr>
<td></td>
<td><input type="checkbox" class="child" name="shippings[{{$i}}][products][]" value="{{ $product->product_id }}" /> </td>
<td>{{ $product->product_name }}</td>
<td>{{ $product->price }}</td>
<td>{{ $product->quantity }}</td>
<td><p style="color:red;"> {{ $product->available_qty }}</p></td>
</tr>
@endforeach
<?php $i++; ?>
@endforeach
</tbody>
</table>
我有我的jsfiddle链接:
http://jsfiddle.net/jKxNF/112/
我很困惑,因为我是在laravel循环中完成的,但是它的结构在jsfiddle中。
最佳答案
我将属性添加到触发复选框,例如
<input type="checkbox" data-target=".prefix-{{ $data->shipping_id }}">
并在目标
<td>
上使用类<td class="prefix-{{ $data->shipping_id }}"><input type="checkbox">Sample3</td>
以下Javascript将选中相关的复选框
$(document).on('change', 'input[type="checkbox"]', function(e) {
var checked = $(this).prop('checked')
var target = $(this).data('target')
if(checked){
$(target).find('input').prop('checked', true)
} else {
$(target).find('input').prop('checked', false)
}
});
数据属性值应为选择器;如果使用ID,则为
#prefix-{{ $data->shipping_id }}
;如果使用类,则为.prefix-{{ $data->shipping_id }}
关于javascript - 复选框检查td内嵌套复选框的所有同级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47070549/