Почему этот бит javascript делает мои флажки трудными для проверки? - PullRequest
0 голосов
/ 29 января 2012

Мое приложение имеет форму, которая использует флажки для сортировки результатов по типу и области.Есть 2 набора полей, один для типов и один для областей.

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

У меня есть этот JavaScript:

Это связывает флажки области и области изображения, так что они оба действуют как входные данные формы

    var $area = $('area');
    $area.click(function(){
        var $checkbox = $('#' + $(this).data("areanum"));
        $checkbox.attr('checked', !$checkbox.attr('checked')).button('refresh');
    });
    $('label').click(function () {
        $area.filter('[data-areanum="' + $(this).attr('for') + '"]').trigger('click');
        return true;
    });     

Это снимает флажки типа (они не будут регистрироваться как проверенные при отправке формы), если я не изменю бит:

        $('label').click(function () {
            $area.filter('[data-areanum="' + $(this).attr('for') + '"]').trigger('click');
            return false;
        });

на

        $('label').click(function () {
            $area.filter('[data-areanum="' + $(this).attr('for') + '"]').trigger('click');
            return true;
        });

(изменил последнюю строку, чтобы вернуть true)

Но это затрудняет выбор флажков,они реагируют на один щелчок, если отмечена область галочки, но реагируют только на двойной щелчок, если нажата метка флажка.

Надеюсь, это имеет смысл, если потребуется какое-либо пояснениепроблема лучше.

Спасибо за любую помощь.

1 Ответ

1 голос
/ 30 января 2012

Я думаю, что вам вообще не нужен обработчик label click, потому что вы просто переключаете свойство checkbox checked, вызывая обработчик области click, который будет заботиться о поведении метки по умолчаниюсам по себе, когда его атрибут for установлен на checkbox id.

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