jQuery Selector Checkbox Group


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
(function($) {
$(function() {
$("form").on('submit', function() {
var groupNames = [];

$(".must_checked").each(function() {
var group = $(this).attr('rel');

if ($.inArray(group, groupNames) === -1) {
groupNames.push(group);
}
});

for(var i=0; i<groupNames.length; i++) {
var groupName = groupNames[i];

if ($("input[rel=" + groupName + "]").is(":checked") === false) {
alert(groupName + " must as least one checked");
return false;
}
}
});
});
})(jQuery);
</script>

<form action="checkbox.php" method="post">
<div>
<h3>Group 1</h3>
<input type="checkbox" name="checkA[1]" value="雜誌" rel="group1" class="must_checked" /> 雜誌
<input type="checkbox" name="checkA[2]" value="報紙" rel="group1" class="must_checked" /> 報紙
<input type="checkbox" name="checkA[3]" value="其他" rel="group1" class="must_checked" /> 其他
</div>
<div>
<h3>Group 2</h3>
<input type="checkbox" name="checkB[1]" value="雜誌" rel="group2" class="must_checked" /> 雜誌
<input type="checkbox" name="checkB[2]" value="報紙" rel="group2" class="must_checked" /> 報紙
<input type="checkbox" name="checkB[3]" value="其他" rel="group2" class="must_checked" /> 其他
</div>
<div>
<h3>Action</h3>
<input type="submit" value="submit">
</div>
</form>