jQuery – 使用remoteAttr()清除它们后重新检查复选框
如果我重置一堆输入:复选框字段与resetAttr(),这是完美的工作,我无法使用ajax响应的数据结合.attr(’checked’,’true’)重新检查这些复选框。
所以脚本的工作流程应该是这样的:
-
在ajax请求期间获取一些数据。 如果成功,请继续。
-
打开表单时,重置其所有内容,包括复选框。 这不适用于
document.getElementById("ID").reset();
单独。 因此我使用了removeAttr();
-
现在获取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);