Javascript label + проблема с флажком в IE, замена флажка изображением - PullRequest
0 голосов
/ 02 мая 2011

Имея проблему в моей форме здесь:

http://lexusevents.sanscode.com/datawash/details/pagetwo/1a08c087bdd3f0f85359a2a2e61ca74a

По сути, у вас есть группа <img>, которая сидит внутри ярлыка с такой галочкой:

<label for="mybox">
  <input type="checkbox" id="mybox">
  <img src="">
</label>

Когда вы щелкаете по изображению в Firefox или Chrome, метка снимает флажок, и мои хитроумные стили CSS меняют изображение, чтобы текст располагался сверху, указывая, что он выбран.

Теперь проблема в том, что когда я нахожусь в IE, клик по ярлыку не работает. Это не сработает флажок. Поэтому, не зная полностью, почему я решил, что я должен попытаться использовать jquery, чтобы это исправить.

    if ($.browser.msie) {


        $('.checkbox label').bind('click', function() {

        checkbx = $(this).children('input');
            me = $(this);
            checkbx.click();

            if (checkbx.is(':checked')) me.addClass('checked');
            else me.removeClass('checked');
        });

        $('.checkbox label').each(function() {
            var c = $('input', this);
            var me = $(this);

            if (c.is(':checked')) me.addClass('checked');
            else me.removeClass('checked');
        });

    }

Этот код содержит ошибку в строке, которая начинается с checkbx = $(th ... очевидно, есть свойство, не поддерживающее эту ошибку метода, но я не могу понять, почему.

Кто-нибудь может мне здесь помочь?

1 Ответ

0 голосов
/ 02 мая 2011

Это может произойти из-за другого ввода в вашей форме:

// You are selecting here all the input tag.
checkbx = $(this).children('input');

Согласно вашему html, у вас также был этот тег:

<input type="hidden" name="form_id" value="1a08c087bdd3f0f85359a2a2e61ca74a"> 

Это может вызвать проблемы в IE,Возможно, вы захотите изменить свой запрос:

С:

checkbx = $(this).children('input');

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

checkbx = $(this).children(':checkbox');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...