JQuery - перебрать флажки и определить, если установлен - PullRequest
2 голосов
/ 20 августа 2010

Я хочу перебрать флажки div и определить, установлены ли флажки checkbox1, checkbox2, checkbox3

    // iterate over checkboxes
    $('#register_students').click(function() { 
        $("div.checkboxes").each(function() {           
            var student = $(this).attr('data');             
            var checkbox1 = ??? 
            var checkbox2 = ???
            var checkbox3 = ???
        });     
        return false;
    });




<td>
<div class='checkboxes' data=8255>
<INPUT type="checkbox"  value="36" class="checkbox1">
<INPUT type="checkbox"  value="14" class="checkbox2">
</div>
</td>

<td>
<div class='checkboxes' data=8244>
<INPUT type="checkbox"  value="36" class="checkbox1">
<INPUT type="checkbox"  value="14" class="checkbox2">
<INPUT type="checkbox"  value="14" class="checkbox3">
</div>
</td>

Ответы [ 3 ]

4 голосов
/ 20 августа 2010

Используйте это.

$(this).is(':checked')

возвращает true или false.Мол,

$('#register_students').click(function() {
    $("div.checkboxes").each(function(index1) {
        var student = $(this).attr('data');
        cb = [];           
        $('input[type=checkbox]',this).each(function(index2, Element){
           cb[index2] = $(Element).is(':checked');
        });
        // use 'cb' and 'student' as you want. 3 checkbox value are as cb[0], cb[1], cb[2]
    });     
    return false;
});
3 голосов
/ 20 августа 2010

Вы используете divs, содержащий флажки, поэтому вам нужно find свои флажки.

(Вам также, вероятно, следует кэшировать $(this), чтобы избежать нескольких вызовов):

    $("div.checkboxes").each(function() {
        var $this = $(this);           
        var student = $this.attr('data');             
        var checkbox1 = $this.find('input.checkbox1').is(':checked'); 
        var checkbox2 = $this.find('input.checkbox2').is(':checked'); 
        var checkbox3 = $this.find('input.checkbox3').is(':checked'); 
    });     
    return false;

Каждая из трех строк флажка возвращает логическое значение, указывающее, установлен ли флажок в текущем элементе div.

3 голосов
/ 20 августа 2010

Использовал селектор :checked.

http://api.jquery.com/checked-selector/

EDIT:

И для таких примеров я бы попробовал на http://jsfiddle.net/... очень помогает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...