флажок снят, но не обновляется на странице

#jquery #checkbox

#jquery #флажок

Вопрос:

У меня есть 2 страницы, одна из которых является лайтбоксом. Когда я нажимаю «Отмена» в своем лайтбоксе, я запускаю функцию на своей родительской странице, чтобы снять флажок. Состояние моего флажка снимается, но флажок не удаляется. Только если я обновлю страницу, флажок будет снят. Как мне снять флажок? Я использую jQuery.

  <input class="checkbox" type="checkbox" value="krisflyer" id="chkbox"/>
 <a href="lightbox.html?KeepThis=trueamp;TB_iframe=trueamp;height=600amp;width=950amp;modal=true" class="thickbox" id="lightbox"></a>
 <input type="hidden" id="cancelfunc" />   //Edited

 $("#cancelfunc").click(function(){
       $("#chkbox").attr("checked", false);
       tb_remove();
 })
  

В моем лайтбоксе:

  <a id="cancel_lightbox" href="#">Cancel</a>  //Edited

 $('#cancel_lightbox').click(function(){
window.parent.$("#cancelfunc").click();
return false;
 })
  

Обновить

Извините, я забыл упомянуть одну вещь. Я использовал изображения для флажка. Если я удалю класс, который добавляет изображения, код будет работать нормально. Флажок установлен и снят правильно. Только с изображениями, они не меняются соответствующим образом.

Комментарии:

1. Откуда вы знаете, что «состояние [флажка] снимается», если «флажок не удален»?

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

3. В синтаксисе, который у вас есть для снятия флажка, нет ничего неправильного, смотрите здесь . Что это за браузер? Ваша дочерняя страница точно находит элемент в родительской?

4. Этот флажок не установлен, поэтому обновление страницы вернет ее в непроверенное состояние.

5. Не могли бы вы опубликовать еще немного кода? К какому типу относятся элементы cancelfunc и cancel_lightbox ?

Ответ №1:

Не уверен, решит ли это проблему, но именно так я бы снял флажок с помощью removeAttr()

 $("#cancelfunc").click(function(){
       $("#chkbox").removeAttr("checked");
       tb_remove();
 });
  

Ответ №2:

 $("#cancelfunc").click(function(){
       $("#chkbox").checked = false;
       tb_remove();
 })
  

Комментарии:

1. А как насчет этого: $(‘input[id=chkbox]’).attr(‘checked’, false);

Ответ №3:

Попробуйте

 $("#chkbox").attr("checked", "");