Проблема с установкой флажков jQuery, как отмечено в IE6 (не отображается как проверено?) - PullRequest
2 голосов
/ 01 апреля 2010

Код:

var lstInstanceIds = getData.lstInstanceIds.split(',');
    for(var i=0; i<lstInstanceIds.length; i++) {
        var value = lstInstanceIds[i];
        $('input[value=' + value + ']').attr('checked','checked');
    }

Так что все, что я делаю, это зацикливаю список и устанавливаю атрибут, отмеченный как проверенный, где значения встречаются.

Это прекрасно работает в Chrome, Firefox, IE7 / 8, Safari. Но не в IE6 ...

Ответы [ 4 ]

4 голосов
/ 01 апреля 2010

Используйте attr('checked', true) вместо.

1 голос
/ 30 ноября 2010

IETester не является точным представлением истинной среды IE6. Главным образом из-за использования движка JavaScript, который находится на локальной машине, а не на IE6. Я сталкивался со многими страницами, которые работают и отлично выглядят в IE6 с использованием IETester, но ужасно терпят неудачу, когда поднимаются на реальном IE6 в среде Windows XP. Я предлагаю получить бесплатный образ виртуального ПК IE6 на WinXP SP3. Это очень полезно при поиске реальных ошибок с помощью jQuery (хотя отладка по-прежнему является проблемой).

0 голосов
/ 01 апреля 2010

У меня раньше была похожая проблема. Чтобы исправить это, я использовал код, подобный следующему:

var lstInstanceIds = getData.lstInstanceIds.split(',');
for(var i=0; i<lstInstanceIds.length; i++) {
    var value = lstInstanceIds[i];
    var checkbox = $('input[value=' + value + ']').get(0);
    if(checkbox.checked == false)
        checkbox.click();
}

Проверяет, установлен ли флажок. Если нет, он щелкает по нему, тем самым проверяя его. Должен поддерживать все браузеры!

0 голосов
/ 01 апреля 2010

Мне удалось настроить базовый пример, основанный исключительно на том, что вы упомянули здесь (так что, надеюсь, я не за горами), и он работал при тестировании в IETester с 6 экземплярами.

<input type="checkbox" id="chk1" value="chk1" />
<input type="checkbox" id="chk2" value="chk2" />
<input type="checkbox" id="chk3" value="chk3" />
<input type="checkbox" id="chk4" value="chk4" />
<input type="checkbox" id="chk5" value="chk5" />

var ids = "chk1,chk3,chk5";
var lstInstanceIds = ids.split(',');
for (var i=0; i<lstInstanceIds.length; i++) {
    var value = lstInstanceIds[i];
    $('input[value=' + value + ']').attr('checked','checked');
}
...