首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法使用jQuery填充某些复选框

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

Stack Overflow用户
提问于 2019-04-24 02:45:30
回答 2查看 62关注 0票数 0

我的一个表单有八组复选框。表单是使用AJAX和jQuery从数据库填充的。大多数复选框集都可以正确加载,但有四个复选框集无法正确加载。在每种情况下使用的代码似乎没有区别,经过几个小时的测试后,我找不到导致这四种情况失败的原因。

一个不同之处在于,失败的四个使用UUID作为值。当我将其中的值更改为数字时,代码可以正常工作。但是,其他两个复选框集也使用UUID,它们工作得很好。失败的四个有不同的和更复杂的格式,所以我删除了格式,但没有用。

这是所有复选框的格式。这个示例是从一个失败的复选框集复制的(总共有83个成员,但我将把完整的列表留给您):

代码语言:javascript
复制
<input id='interest1' name='interest[]' type='checkbox' value='74095951-F0EF-441C-85F4-949304FF6B89' />
<label for="interest1">Civil rights</label>
<input id='interest2' name='interest[]' type='checkbox' value='3D8A60AC-732F-4522-A9A7-7E564F16C5DA' />
<label for="interest2">Domestic violence</label>

这是设置所有复选框集的状态的jQuery代码,这些复选框集可以工作,而不能工作:

代码语言:javascript
复制
if($.isArray(value)){
  for(var i = 0; i < value.length; i++){
    $('input[type="checkbox"][name^="' + key + '"][value="' + value[i] + '"]').attr('checked', 'checked');
  }          
}

在每种情况下,value都是一个简单的数组。

有没有人对我可以做的测试有什么想法来确定原因?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-24 10:46:10

问题解决了。

用于生成导致问题的四组复选框的查找表的UUID为大写。但是测试数据是小写的。

我很抱歉用这个来打扰这个列表。我感到非常尴尬。

我现在将所有的UUID转换为小写,因为我从https://stackoverflow.com/a/13833488/9428542中了解到这是标准。

票数 1
EN

Stack Overflow用户

发布于 2019-04-24 03:17:18

您可以简单地使用each函数来迭代数组。没有必要在CSS选择器中引用属性值,正如注释中所提到的,您应该使用prop来设置布尔属性,如checkeddisabled等。

代码语言:javascript
复制
var key = 'interest';
var value = ['74095951-F0EF-441C-85F4-949304FF6B89', '3D8A60AC-732F-4522-A9A7-7E564F16C5DA'];

$.each(value, function(i, v) {
    $('input[type=checkbox][name^=' + key + '][value=' + v + ']').prop('checked', true);
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id='interest1' name='interest[]' type='checkbox' value='74095951-F0EF-441C-85F4-949304FF6B89' />
<label for="interest1">Civil rights</label>
<input id='interest2' name='interest[]' type='checkbox' value='3D8A60AC-732F-4522-A9A7-7E564F16C5DA' />
<label for="interest2">Domestic violence</label>
<input id='interest3' name='interest[]' type='checkbox' value='3D8A60AC-732F-4522-A9A7-7E564F16C5DB' />
<label for="interest3">Some other thing</label>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55817571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档