Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > jquery checkbox + ajax


Автор: hmelin 13.9.2010, 11:48
есть группа чекбоксов, при клике на каждый из них вызывается функция
Код

 function clickOnCheckbox(obj, urlAdd, urlDel) {
                if (!obj.checked)
                    $.get(urlAdd);
                else
                    $.get(urlDel);
            }

то есть просто посылаются разные запросы в зависимости от состояния чекбокса, работает нормально.

Есть еще 1 чекбокс, при клике на который выделяются все остальные(или выделение снимается). Не получается сделать так, чтобы при
клике на этот чекбокс снимались/проставлялись галочки со всех остальных и отправлялся запрос на нужный url.

Пробовал так:
Код

function clickOnMainCheckbox(obj, className) {
                $("input:checkbox." + className).click();              
            }

function clickOnCheckbox(obj, urlAdd, urlDel) {
                if (!obj.checked)
                    $.get(urlAdd);
                else
                    $.get(urlDel);
 }

в этом случае визуально все нормально, а запрос идет на неправильный url. А вот так
Код

function clickOnMainCheckbox(obj, className) {
                
                if (!obj.checked) {
                    $("input:checkbox." + className).attr("checked", false);
                    $("input:checkbox." + className).triggerHandler('click');
                }
                else {
                    $("input:checkbox." + className).attr("checked", true);
                    $("input:checkbox." + className).triggerHandler('click');
                }
            }

            function clickOnCheckbox(obj, urlAdd, urlDel) {
                if (!obj.checked)
                    $.get(urlAdd);
                else
                    $.get(urlDel);
            }

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

Автор: hmelin 13.9.2010, 13:40
все оказалось очень просто
Код

function clickOnMainCheckbox(obj, className) {
        if (!obj.checked) {
            $("input:checkbox." + className).each(function() {
                this.checked = false;
                $(this).triggerHandler('click');
            });
        }
        else {
            $("input:checkbox." + className).each(function() {
                this.checked = true;
                $(this).triggerHandler('click');
            });
        }            
    }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)