如何在 jQuery 中保存后保留选定的单选按钮值
How to keep selected Radio button value after saved in jQuery
我在 VBTML 页面和 jQuery 中有动态单选按钮。我有 3 个单选按钮,当我选择 first/second 单选按钮并单击保存时。选定的单选按钮文本已正确保存到数据库中。但在前端它没有选择保存的单选按钮文本。始终选择最后一个单选按钮。请在下面查看我的代码。请帮助我如何保持选中选中的单选按钮选项。
<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>
下面这段代码是问题所在:
if (val.length > 1) {
$(':input[name="CourseDetails"]').prop('checked', true);
}
由于所有单选按钮都具有相同的名称,因此您需要使其更明确一些并开始使用 id,因为这就是您收集的内容。
尝试将其更新为类似这样的内容以查看是否有帮助:
$(':input[id="' + val + '"]').prop('checked', true);
甚至:
$('#' + val).prop('checked', true);
我在 VBTML 页面和 jQuery 中有动态单选按钮。我有 3 个单选按钮,当我选择 first/second 单选按钮并单击保存时。选定的单选按钮文本已正确保存到数据库中。但在前端它没有选择保存的单选按钮文本。始终选择最后一个单选按钮。请在下面查看我的代码。请帮助我如何保持选中选中的单选按钮选项。
<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>
下面这段代码是问题所在:
if (val.length > 1) {
$(':input[name="CourseDetails"]').prop('checked', true);
}
由于所有单选按钮都具有相同的名称,因此您需要使其更明确一些并开始使用 id,因为这就是您收集的内容。
尝试将其更新为类似这样的内容以查看是否有帮助:
$(':input[id="' + val + '"]').prop('checked', true);
甚至:
$('#' + val).prop('checked', true);