テーブル内にラジオボタンのグループがあり、コードは次のようになります。
<table class="table table-responsive">
<thead>
<tr>
<th>Courier</th>
<th>Service</th>
</tr>
</thead>
<tbody>
<form>
<tr>
<td>
<div class="radio">
<label><input type="radio" name="optradio">TIKI</label>
</div>
</td>
<td>
Regular Shipping
</td>
</tr>
<tr>
<td>
<div class="radio">
<label><input type="radio" name="optradio">JNE</label>
</div>
</td>
<td>
Express Shipping
</td>
</tr>
</form>
</tbody>
</table>
JNEなどのCourierセルの1つをクリックすると、ボタンが選択されます。エクスプレス配送をクリックすると、ボタンも選択されます。どうすれば作成できますか?そして、サービス列の垂直方向の整列はクーリエ列と同じ高さではありません、それを修正する方法は?ブートストラップを使用しています。
これは label for を使用して実現できます
次のコードを参照して、以下のスニペットを実行してください::
.radiotext {
margin: 10px 10px 0px 0px;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" />
<table class="table table-responsive">
<thead>
<tr>
<th>Courier</th>
<th>Service</th>
</tr>
</thead>
<tbody>
<form>
<tr>
<td>
<div class="radio">
<label><input type="radio" id='regular' name="optradio">TIKI</label>
</div>
</td>
<td>
<div class="radiotext">
<label for='regular'>Regular Shipping</label>
</div>
</td>
</tr>
<tr>
<td>
<div class="radio">
<label><input type="radio" id='express' name="optradio">JNE</label>
</div>
</td>
<td>
<div class="radiotext">
<label for='express'>Express Shipping</label>
</div>
</td>
</tr>
</form>
</tbody>
</table>
ご覧のとおり、エクスプレス配送と定期配送をクリックして、リクエストに応じてラジオボタンを選択できるようになりました。
JQueryを使用すると、入力またはラベルだけでなく、row
全体を選択できるようになります。例を参照してください。
$('.table tbody tr').click(function(event) {
if (event.target.type !== 'radio') {
$(':radio', this).trigger('click');
}
});
.table-responsive tbody tr {
cursor: pointer;
}
.table-responsive .table thead tr th {
padding-top: 15px;
padding-bottom: 15px;
}
.table-responsive .table tbody tr td {
padding-top: 15px;
padding-bottom: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th>Courier</th>
<th>Service</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="radio" name="radios" id="radio1" />
<label for="radio1">TIKI</label>
</td>
<td>Regular Shipping</td>
</tr>
<tr>
<td>
<input type="radio" name="radios" id="radio2" />
<label for="radio2">JNE</label>
</td>
<td>Express Shipping</td>
</tr>
</tbody>
</table>
</div>
このコードを使用して問題を修正します
$('.table tbody tr td').click(function (event) {
if (event.target.type !== 'radio') {
$(':radio', this).trigger('click');
}
});