2014-11-11 8 views
0

У меня есть 3 вопроса T/F, которые отображаются на флажках на моей веб-странице. Третий вопрос скрыт, пока пользователь не проверит первые два флажка. Если пользователь также проверит третий флажок, появится новый раздел вопросов. Вот jquery, который делает это успешно.jquery - persist show after page reload

$(document).ready(function() { 
      $("#id_q1, #id_q2").click(function() { 
       if ($("#id_q1").is(':checked') == true && $("#id_q2").is(':checked') == true) { 
        $(".question-hide").show(); 
         $("#id_q3").click(function() { 
          if ($("#id_q3").is(':checked') == true) { 
           $("#questions-hide").show(); 
          } else { 
           $("#questions-hide").hide(); 
          } 
         }); 
       } else { 
        $(".question-hide").hide(); 
        $("#questions-hide").hide(); 
        $('#id_q3').attr('checked', false); 
       } 

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

Как я могу получить эту функциональность?

Благодаря

ответ

0

Используйте change событие вместо этого, и вызвать обработчик при загрузке страницы:

$("#id_q1, #id_q2").change(function() { 
    //... 
}).trigger('change'); 
+0

Я попробовал это, и первые две галочки в конечном итоге сначала проверяется на перезагрузку, независимо от их начального положение дел. – pomegranate

+0

Отредактированный ответ. Вместо этого попробуйте событие «change». –

+0

Hm, изменение запрещает отображение скрытого флажка при проверке первых двух флажков. – pomegranate