table 内的单选按钮
Radio button inside table
我有一组单选按钮放在里面table,代码是这样的:
<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>
当我点击其中一个 Courier 单元格(例如 JNE)时,该按钮被选中,现在我想在我点击 Express Shipping 时也选中该按钮,我该怎么做?并且 Service 栏的垂直对齐与 Courier 栏的高度不同,如何解决?我使用 bootstrap.
这可以使用 label for
来完成
查看以下代码和 运行 下面的代码段 ::
<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>
如您所见,您现在可以根据要求单击 select 单选按钮的“快递运送”和“常规运送”。
您可以使用 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');
}
});
我有一组单选按钮放在里面table,代码是这样的:
<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>
当我点击其中一个 Courier 单元格(例如 JNE)时,该按钮被选中,现在我想在我点击 Express Shipping 时也选中该按钮,我该怎么做?并且 Service 栏的垂直对齐与 Courier 栏的高度不同,如何解决?我使用 bootstrap.
这可以使用 label for
来完成查看以下代码和 运行 下面的代码段 ::
<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>
如您所见,您现在可以根据要求单击 select 单选按钮的“快递运送”和“常规运送”。
您可以使用 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');
}
});