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