Определите, установлен ли флажок с помощью jquery при загрузке страницы - PullRequest
2 голосов
/ 15 марта 2011

Я все еще новичок в jQuery, так что простите, если это не имеет смысла в первом раунде.

У меня есть набор флажков (разрешено, не разрешено, подлежит обсуждению), что, если вы отметите флажок разрешено или согласовано, он отображает другой набор флажков через событие onclick.

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

Я пробовал разные предложения по другим вопросам, но безуспешно. например: if ($("#id_pets_0").attr("checked")==true)

Возможно ли это?

Если у кого-нибудь есть альтернативы, я тоже играю за это.

UPDATE: Это то, что я пытался.

$(function() {
   if ($("#id_pets_0").attr("checked")==true) {
        $("#dogs").show();
        $("#cats").show();
    }
    else {
        $("#dogs").hide();
        $("#cats").hide();
    }
});

UPDATE: Этот код работает. Так что я знаю, что он проверяет флажки, по крайней мере, для событий щелчка.

$(function() {
    $('input#id_pets_0').click(function() {
    if ($(this).attr("checked")) {
        $("#id_pets_1").attr("checked", false);
        $("#dogs").show("slow");
        $("#cats").show("slow");
        return;
    }
    if ($("#id_pets_2").attr("checked")) {
        $("#dogs").show("slow");
        $("#cats").show("slow");
    }
    else {
        $("#id_dogs_0").attr("checked", false);
        $("#id_dogs_2").attr("checked", false);
        $("#id_cats_0").attr("checked", false);
        $("#id_cats_2").attr("checked", false);
        $("#dogs").hide("slow");
        $("#cats").hide("slow");
    }
});
});

Ответы [ 4 ]

5 голосов
/ 15 марта 2011

Вам нужно подключиться к событию ready(), равному document, если вы не поместите все свои сценарии после HTML.

Кроме того, вам нужно использовать селектор :checked, чтобы определить, установлен флажок или нет.

Это должно работать:

$(document).ready(function () {
        if ($('#id_pets_0 :checked')) {
            alert('Hello');
        }
    });

Подробнее о селекторе :checked: http://api.jquery.com/checked-selector/

1 голос
/ 15 марта 2011

Попробуйте это http://jsfiddle.net/guanome/WzuMa/, распознает, когда флажок установлен, а когда нет.

На этом веб-сайте есть список возможных способов проверить, установлен ли флажок. http://jquery -howto.blogspot.com / 2008/12 / как к регистрации по прибытии если-флажок-это-checked.html

0 голосов
/ 17 марта 2011

Спасибо всем, кто ответил. Я бы подумал, что это сработало бы.

В итоге я обернул параметры show / hide в шаблон Django if и использовал передаваемый контекст. Так как я захватывал выбор pets, я смог затем использовать if, чтобы показать или скрыть раздел выбора cats и dogs.

0 голосов
/ 15 марта 2011

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

if (document.getElementById("id_pets_0").checked) {
    $("#dogs").show();
    $("#cats").show();
}
else {
    $("#dogs").hide();
    $("#cats").hide();
}

Также вы абсолютно уверены, что флажок - id_pets_0, а не идентификатор оболочки вокруг флажка?

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