2

编码:

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 回答 4

4

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

于 2010-04-01T15:46:30.277 回答
1

IETester 不是真正的 IE6 环境的准确表示。主要是因为使用的是本地机器上的 javascript 引擎,而不是 IE6 引擎。我遇到过许多使用 IETester 在 IE6 中工作且看起来很棒的页面,但在 Windows XP 环境中的真正 IE6 上运行时却失败了。我的建议是在 WinXP SP3 上获得 IE6 的免费 Virtual PC 映像。它在使用 jQuery 查找真正的错误时非常有用(尽管调试起来仍然很痛苦)。

于 2010-11-30T18:59:28.440 回答
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();
}

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

于 2010-04-01T16:21:23.477 回答
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');
}
于 2010-04-01T16:12:22.890 回答