jQuery - 使用remoteAttr()清除它们后重新检查复选框

Ral*_*att 3 forms checkbox jquery

如果我重置一堆输入:复选框字段与resetAttr(),这是完美的工作,我无法使用ajax响应的数据结合.attr('checked','true')重新检查这些复选框.

所以脚本的工作流程应该是这样的:

  1. 在ajax请求期间获取一些数据.如果成功,请继续.

  2. 打开表单时,重置其所有内容,包括复选框.这不是document.getElementById("ID").reset();单独的工作 .所以我用过removeAttr();

  3. 现在获取ajax-request的数据并使用它将其放入DOM中 jQuery('#SomeID').find('input[value="'+SomeObject[key]+'"]').attr('checked','true');

在没有使用remoteAttr()之前,将按照步骤3中的描述填充表单.使用removeAttr()导致结果,将重置填充复选框.

有什么建议?最好的问候拉尔夫

更新:我找到了一个解决方案,这有点令人讨厌但工作:

首先,我删除已检查的属性: jQuery('#form').find('input:checkbox').attr('checked',false);

然后再次重置表单,使用: document.getElementById("such-sets-_viewSuchSets-form").reset();

之后,我使用jQuery().val()等重新填写带有选中复选框,文本框等的表单.

小智 5

正在寻找解决此问题的人.似乎是因为"attr"功能没有更新复选框的状态.

请尝试更改: $('.someClass').attr("checked", true);

$('.someClass').prop("checked", true);

有关详细信息,请访问官方文档:http: //api.jquery.com/prop/