Javascript 无法使用jQuery填充某些复选框
我的一张表格有八组复选框。表单是使用AJAX和jQuery从数据库填充的。大多数复选框集加载正确,但有四个不正确。在每种情况下使用的代码似乎没有区别,经过几个小时的测试,我无法找出导致这四个失败的原因 一个区别是四个失败的用户使用UUID作为值。当我将这些值更改为数字时,代码正常工作。然而,另外两个复选框集也使用UUID,它们工作正常。失败的四个有不同的和更复杂的格式,所以我删除了格式,但没有用 这是所有复选框的格式。此示例是从一个失败的复选框集中复制的(总共有83个成员,但我不给您完整的列表):Javascript 无法使用jQuery填充某些复选框,javascript,jquery,html,Javascript,Jquery,Html,我的一张表格有八组复选框。表单是使用AJAX和jQuery从数据库填充的。大多数复选框集加载正确,但有四个不正确。在每种情况下使用的代码似乎没有区别,经过几个小时的测试,我无法找出导致这四个失败的原因 一个区别是四个失败的用户使用UUID作为值。当我将这些值更改为数字时,代码正常工作。然而,另外两个复选框集也使用UUID,它们工作正常。失败的四个有不同的和更复杂的格式,所以我删除了格式,但没有用 这是所有复选框的格式。此示例是从一个失败的复选框集中复制的(总共有83个成员,但我不给您完整的列表)
民权
家庭暴力
这是jQuery代码,用于设置所有复选框集的状态,包括有效复选框集和无效复选框集:
if($.isArray(value)){
for(var i = 0; i < value.length; i++){
$('input[type="checkbox"][name^="' + key + '"][value="' + value[i] + '"]').attr('checked', 'checked');
}
}
if($.isArray(值)){
对于(变量i=0;i
在每种情况下,value
都是一个简单的数组
有人知道我可以做什么测试来确定原因吗?您可以简单地使用
每个
函数来迭代数组。CSS选择器中不需要引用属性值,如注释中所述,您应该使用prop
来设置布尔属性,例如选中的
,禁用的
,等等
var键='interest';
var值=['74095951-F0EF-441C-85F4-949304FF6B89','3D8A60AC-732F-4522-A9A7-7E564F16C5DA'];
$。每个(值、函数(i、v){
$('input[type=checkbox][name^='+key+'][value='+v+']')。prop('checked',true);
});代码>
民权
家庭暴力
还有一件事
您可以简单地使用每个
函数来迭代数组。CSS选择器中不需要引用属性值,如注释中所述,您应该使用prop
来设置布尔属性,例如选中的
,禁用的
,等等
var键='interest';
var值=['74095951-F0EF-441C-85F4-949304FF6B89','3D8A60AC-732F-4522-A9A7-7E564F16C5DA'];
$。每个(值、函数(i、v){
$('input[type=checkbox][name^='+key+'][value='+v+']')。prop('checked',true);
});代码>
民权
家庭暴力
还有一件事
问题解决了
用于生成导致问题的四组复选框的查找表的UUID为大写。但测试数据是小写的
我很抱歉用这件事打扰了名单。我深感尴尬
我现在将把所有UUID转换成小写,因为我从is标准中了解到。问题解决了
用于生成导致问题的四组复选框的查找表的UUID为大写。但测试数据是小写的
我很抱歉用这件事打扰了名单。我深感尴尬
现在,我将把所有UUID转换为小写形式,因为我从is标准中了解到。您的代码在这种情况下工作:不要使用.attr
与属性交互。属性使用.prop
。(这可能对您的情况有帮助,也可能没有帮助,但无论如何最好使用正确的方法)您的代码在这种情况下工作:不要使用.attr
与属性交互。属性使用.prop
。(这可能对您的情况有帮助,也可能没有帮助,但最好使用正确的方法)
if($.isArray(value)){
for(var i = 0; i < value.length; i++){
$('input[type="checkbox"][name^="' + key + '"][value="' + value[i] + '"]').attr('checked', 'checked');
}
}