Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用jQuery填充某些复选框_Javascript_Jquery_Html - Fatal编程技术网

Javascript 无法使用jQuery填充某些复选框

Javascript 无法使用jQuery填充某些复选框,javascript,jquery,html,Javascript,Jquery,Html,我的一张表格有八组复选框。表单是使用AJAX和jQuery从数据库填充的。大多数复选框集加载正确,但有四个不正确。在每种情况下使用的代码似乎没有区别,经过几个小时的测试,我无法找出导致这四个失败的原因 一个区别是四个失败的用户使用UUID作为值。当我将这些值更改为数字时,代码正常工作。然而,另外两个复选框集也使用UUID,它们工作正常。失败的四个有不同的和更复杂的格式,所以我删除了格式,但没有用 这是所有复选框的格式。此示例是从一个失败的复选框集中复制的(总共有83个成员,但我不给您完整的列表)

我的一张表格有八组复选框。表单是使用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');
  }          
}