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

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

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

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

  2. 打开表单时,重置其所有内容,包括复选框。 这不适用于document.getElementById("ID").reset(); 单独。 因此我使用了removeAttr();

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

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

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

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

首先,我使用以下命令删除checked属性: jQuery('#form').find('input:checkbox').attr('checked',false);

然后使用: document.getElementById("such-sets-_viewSuchSets-form").reset();

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

谁正在寻找解决此问题的人。 似乎是因为“attr”function没有更新复选框的状态。

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

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

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

打开表单时为什么不运行此命令,而是将all设置为false

 jQuery('#SomeID').find('input[value="'+SomeObject[key]+'"]').attr('checked',false);