在IE6中检查了jQuery设置复选框的问题(未显示为已选中?)

时间:2010-04-01 15:43:26

标签: jquery coldfusion internet-explorer-6 checkbox checked

守则:

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 个答案:

答案 0 :(得分:4)

改为使用attr('checked', true)

答案 1 :(得分:1)

IETester并不是真正的IE6环境的准确表示。主要是由于使用本地机器而不是IE6的javascript引擎。我在IE6中使用IETester遇到了许多工作和看起来很棒的页面,但是当在Windows XP环境中使用真正的IE6时,它会非常糟糕。我的建议是在WinXP SP3上获得IE6的免费Virtual PC映像。使用jQuery查找真正的错误非常有用(尽管调试仍然很麻烦)。

答案 2 :(得分:0)

我能够根据你在这里提到的内容设置一个基本的例子(希望我不会太离谱),并且它在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');
}

答案 3 :(得分:0)

我之前遇到过类似的问题。为了解决这个问题,我使用了类似的代码:

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();
}

检查是否选中了复选框。如果没有,它会点击它,从而检查它。应该支持所有浏览器!