jquery – 选择带有js数组名称的所有复选框
我想以这样的forms使用JQuery“check all”函数: http : //jetlogs.org/jquery/jquery_select_all.html
我的问题是我从php脚本生成我的表单,而且我不知道我将提前有多少个复选框。 我使用“数组”命名约定来获取我的$ _POST数据中所有选中的复选框值…所以我的复选框是这样的:
<input type="checkbox" name="items[]" value="">
但是这个JQuery声明不起作用:
$("input[@name=items[]]").each(function() { this.checked = checked_status; });
可能是因为我的“项目”末尾的“[]”搞砸了JQuery声明……我试着像这样编写@ name = items []:“@ name = items []”,并提出一些反对意见-slash在[和]之前,因此它们不被视为特殊字符,但它不起作用……
如果有人知道解决方案,并愿意分享,那就太棒了!! 🙂
使用\\
(无空格)转义内部括号 – 它应该解决问题。
这个选择器适合我:
$('input[name=items\\[\\]]')
尝试使用
$('input[name="items[]"]')
不需要@
并使用"
。注意引号外的选择器是'
。否则你可能会导致解析错误。
首先,您的name属性应该用于设置具有相同名称的+1元素。 它实际上与id属性相同,除引用外,每个元素应该是唯一的,但对您来说情况并非如此。
尝试使用class属性,它是为你想要做的事情做的!
另一件事是,在您的代码中,您只能将复选框设置为“已选中”,但永远不要取消选中,此代码会根据从被点击元素获取的属性将您的复选框设置为选中true或false。
你可以这样做:
使用id设置check all复选框
然后设置应该选中/取消选中一个类的所有复选框
你可以在jQuery中做这样的事情
$("#checkAll").click( function(){ var checkedValue = $(this).attr("checked"); $("input.checked").attr("checked", checkedValue); });
这会将检查了类的所有复选框更改为与具有id checkAll的复选框相同的已检查属性
$("input[name='smsid[]']")
这段代码对我来说很好……