我有一个带有“重置”按钮的表单
。当我选择我的 radio button
时,我的 DataTable
中的数据被传递并预弹出我的字段。这工作正常,实际上确实预填充了相关的单选按钮
JQuery
if (modifyRecordData.startTime == 'Anytime') {
$('#anyTimeRadioButton').attr('checked', true);
$('#specificTimeRadioButton').removeAttr('checked');
$('#startEndTimeFields').hide();
} else {
$('#anyTimeRadioButton').removeAttr('checked');
$('#specificTimeRadioButton').attr('checked', true);
$('#startEndTimeFields').show();
$('#startTimeHr').val(modifyRecordData.startTimeHr);
$('#startTimeMin').val(modifyRecordData.startTimeMin);
$('#endTimeHr').val(modifyRecordData.endTimeHr);
$('#endTimeMin').val(modifyRecordData.endTimeMin);
}
数据返回
现在的问题是,如果用户在数据加载后去更新详细信息并选择其他单选按钮,则显示隐藏字段(再次正确)
然后用户点击“重置”按钮,它在正确的函数
中失败了
$('#resetButton').mousedown(function (event) {
buttonclicked = "Reset";
event.stopImmediatePropagation();
modifyRadioButtonSelection(modifyRecordData);
})
然后返回到初始加载的数据,它确实落在上面的 IF
代码中
然后它重新隐藏隐藏部分(这是正确的)但它没有按预期重新勾选单选按钮
。
如果我在 IF
中没有以下代码,它会保留先前选择的代码,尽管数据落在 IF
$('#specificTimeRadioButton').removeAttr('checked');
完全不知道出了什么问题。我什至尝试添加以下“重置”按钮功能
,但它不会重新检查正确的“单选按钮”
$('#anyTimeRadioButton').removeAttr('checked');
$('#specificTimeRadioButton').removeAttr('checked');
最佳答案
从历史上看,三个相关但不同的概念之间存在很多歧义和混淆:
- 源代码中 HTML 属性的值。
- DOM 树中 HTML 属性的值。
- JavaScript 属性的值。
为了解决这个问题,jQuery/1.6.1 引入了 prop()
method ,我建议你采用。
关于javascript - .attr ('checked' , true) 不会在按钮点击时重新添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54948318/