需要 JQuery 标记从数据库的列表/数组中选中的复选框
Need JQuery to mark checkboxes checked from list/array from database
使用 SQL 2008 Server 和最新的 JQuery。如果我从数据库中查询一列并获取列表/数组,如何将每个复选框组中的复选框标记为"选中"?示例复选框组和列表如下:
类别 '1,7,20' 的列表(Jquery 应选中值为 1,7,10 的复选框)列表的喜欢 '2,3' (Jquery 应该标记选中值 2 和 3 的复选框)
<form>
<input type="checkbox" class="category" name="category" value="14" />Blah
<input type="checkbox" class="category" name="category" value="1" />Blah1
<input type="checkbox" class="category" name="category" value="7" />Blah2
<input type="checkbox" class="category" name="category" value="20" />Blah3
<input type="checkbox" class="likes" name="likes" value="17" />Apple
<input type="checkbox" class="likes" name="likes" value="3" />Apple1
<input type="checkbox" class="likes" name="likes" value="2" />Apple2
<input type="checkbox" class="likes" name="likes" value="13" />Apple3
</form>
我尝试了以下 JQuery 代码,但它不起作用:
$.each(['1,7,20'], function (index, item) {
if ($('.category').val() === item) {
$(".category").prop("checked", true);
}
});
您传递的是一个数组,其中包含一个字符串1,7,20
,而不是一个包含三个元素的数组,这些元素是字符串1
,7
和20
,所以我不确定为什么你期望它工作。如果你的输入实际上是字符串,你可以把它拆分在逗号上,得到一个以你的数字作为字符串的数组:
var myString = '1,7,20';
var myArray = myString.split(',');
然后将myArray
传递给$.each()
函数调用。
您传递给$.each()
的函数中的代码也存在问题。如果你确实在包含多个元素的jQuery对象上调用.val()
,它通常只会返回第一个元素的值。您需要再次循环访问元素集合,并使用this
引用当前元素。
$.each(myArray, function(index, item){
$('.category').each(function(){
if(this.value === item) {
this.checked = true;
}
});
});
顺便说一下,从语义上讲,你应该使用过滤器。您可以执行相同的操作,同时提高代码的可读性。
相关文章:
- 按键,值到数组:jQuery
- 数组数组jquery,json到数组
- 从数组jquery中基于子字符串的移除项
- 从数组jQuery中删除一组项
- 如何在数组jQuery中查找字符串的一部分
- 当输入字段名称在数组jquery中时序列化表单
- 打乱图像数组jquery
- 在数组 jQuery 中查找值
- 循环遍历多维数组 jQuery
- 在数组 jQuery 中查找特定的字符串模式
- 随机选择带有删除项的数组(jQuery)
- 在数组中附加值数组 - jquery
- 从数组 Jquery 中获取下拉列表的选定索引
- 删除相同值数组 Jquery
- 如何从数组 jquery 中删除特定值
- 将 2D 数组 jQuery Post 发送到 Java Servlet
- 获取数组jQuery中元素的索引
- 正在从会话数组Jquery Ajax中删除项
- 在GET请求中绑定复杂对象的数组-jquery.praram()传统标志
- 获取空对象数组jquery post