【发布时间】:2021-09-02 13:41:59
【问题描述】:
我在 VBTML 页面和 jQuery 中有动态单选按钮。我有 3 个单选按钮,当我选择第一个/第二个单选按钮并单击保存时。选定的单选按钮文本正确保存到数据库中。但是在前端它没有选择保存的单选按钮文本。总是选择最后一个单选按钮。请在下面查看我的代码。请帮助我如何保持选中选中的单选按钮选项。
<table>
<tr>
<td>
@Code
For Each item In Model.StudentCourseLookup
Dim itemName = item.Text
@<input type="radio" name="CourseDetails" id="@itemName" class="cbxStudentCourse" />
@<span>@item.Text</span>
@<br />
Next
End Code
@Html.TextBoxFor(Function(m) m.StudentCourse, New With {.style = "display: none;"})
</td>
</tr>
</table>
<script type="text/javascript">
if ($("#StudentCourse").val !== '') {
var data1 = $("#StudentCourse").val();
$.each(data1.split('|'), function (_, val) {
if (val.length > 1) {
$(':input[name="CourseDetails"]').prop('checked', true);
}
});
}
function OStudentCourseSave() {
var studentCourseList = ''
$('.cbxStudentCourse').each(function (index, cbx) {
if (this.checked === true) {
studentCourseList = cbx.id;
}
});
$("#StudentCourse").val(studentCourseList);
var sc= @Html.Raw(Json.Encode(Model)); //Getting model
sc.StudentCourse = $("#StudentCourse").val();
}
</Script>
【问题讨论】:
-
您最好使用表单,它可以让您免于编写所有那些只会使代码变得不必要的复杂的循环。否则您将面临重新加载由.Net技术制作的页面的问题。为此,您必须初始化先前选择的单选元素(如果您使用表单,这也将更容易完成)
-
在创建收音机时设置
checked属性<input type="radio" checked="@ischecked"..(已使用服务器端vbthml razor 检查设置) -
或使用
@Html.RadioButtonFor并让系统为您重新填充它(另见stackoverflow.com/a/10805741/2181514)
标签: javascript html jquery .net vb.net