javascript - .attr ('checked' , true) 不会在按钮点击时重新添加

标签 javascript jquery

我有一个带有“重置”按钮的表单。当我选择我的 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);
}

数据返回

enter image description here

页面已加载 enter image description here

现在的问题是,如果用户在数据加载后去更新详细信息并选择其他单选按钮,则显示隐藏字段(再次正确) enter image description here

然后用户点击“重置”按钮,它在正确的函数中失败了

$('#resetButton').mousedown(function (event) {
    buttonclicked = "Reset";
    event.stopImmediatePropagation();
    modifyRadioButtonSelection(modifyRecordData);
})

然后返回到初始加载的数据,它确实落在上面的 IF 代码中

调试 enter image description here

然后它重新隐藏隐藏部分(这是正确的)但它没有按预期重新勾选单选按钮

enter image description here

如果我在 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/

相关文章:

javascript - 如何使用 child-parentnode 将此 javascript 编码为 jquery?

javascript - Phonegap+JQuery 移动 : How to fire a popup from the Android menu button?

javascript - 如何在跨域的iframe中获取父域名?

javascript - 避免 ng view 渲染的页面出现难看的图片加载效果

javascript - 如何使用fancybox dialog插件直接显示一个div

javascript - 如何在特定情况下自动关闭 Chrome 浏览器?

javascript - 如何在状态路由内的状态更改angularjs上动态更改pageTitle

javascript - 如何在同一元素上为 css 和 Angular 过渡设置不同的过渡持续时间?

javascript - 到图像点击我给了一个函数,点击它就获取图像ID,使用这个我必须使用javascript更改图像

jquery - 延迟 html 表单提交,直到 div 动画完成