javascript - 如何获取单选按钮值并清除表中选中的单选按钮
问题描述
我正在使用 Razor 语法(在 ASP.NET Core MVC 下)在表中创建多个单选按钮。
<table class="table table-striped table-hover table-bordered table-sm custom-font">
<thead>
<tr>
<th>Id</th>
<th>Document Name</th>
<th>Signed?</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>@item.Id</td>
<td>@item.DocumentName</td>
<td>
@foreach (var sign in item.Signs)
{
<div class="form-check form-check-inline">
<input type="radio" asp-for="@item.Sign" value="@sign" class="form-check-input" />
<label class="form-check-label">@sign</label>
</div>
}
<div class="text-center">
<a href="@Url.Action("UpdateSigned", "Document")" class="update" data-id="@item.Id">Update</a> | <a href="#" class="clear">Clear</a>
</div>
</td>
</tr>
}
</tbody>
</table>
@section Scripts {
<script>
$(function () {
$('.update').click(function (e) {
e.preventDefault();
var signed = $('input[name="item.Signed"]:checked').val();
alert(signed);
});
$('.clear').click(function (e) {
e.preventDefault();
$('.clear input[type="radio"]').prop('checked', false);
});
});
</script>
}
每行都有更新和清除链接,用于更新记录并清除每行选中的单选按钮。
问题是,从剃刀语法来看,它将为每一行生成具有相同 id 和名称的 html 收音机。所以我无法检查每行的单选并清除选中的单选按钮。
如何解决这个问题?
对于这种情况,我正在jsfiddle中创建类似的代码。
解决方案
<input type="radio" asp-for="@item.Sign" value="@sign" class="form-check-input" />
它将为每一行生成具有相同 ID 和名称的 html 收音机。
该asp-for
属性将为html 属性生成并设置值,这会导致问题id
。name
每行都有更新和清除链接,用于更新记录并清除每行选中的单选按钮。
为了达到您的要求,您可以尝试:
删除asp-for
属性,并动态设置默认选中选项
<input type="radio" name="Sign_for_@item.Id" @(item.Sign==sign? "checked" : "") value="@sign" class="form-check-input" />
修改js代码找到父td
元素,然后找到单选按钮
<script>
$(function () {
$('.update').click(function(e) {
e.preventDefault();
var signed = $(this).parent().parent().find('input[type="radio"]:checked').val();
alert(signed);
});
$('.clear').click(function(e) {
e.preventDefault();
$(this).parent().parent().find('input[type="radio"]').prop('checked', false);
});
})
</script>
测试结果
推荐阅读
- python - 在测试根目录上发现 Unittest 期间的 ImportError
- azure - Bot Framework - prod 的对话状态内存存储
- git - 在 Git 中删除提交并撤消更改
- sql - 将 PostgreSQL 函数包装在另一个中以有条件地组合结果
- javascript - 如何在我的 Wix 网站上发送带有 PDF 文件的电子邮件
- terraform - 如何从 terraform 状态设置打包程序变量
- google-apps-script - 使用脚本创建 PDF 没有格式
- php - 如何在 PHP 中正确连接
- python - 如何在 Qiskit 中进行量子比特观测建模
- r - 使用 install.packages 时与编译相关的错误