0

我试图根据用户从下拉列表中选择的内容使用 JQuery 1.5 动态检查复选框。当列表更改时,它会返回此函数:

function displaySystemResults(html){
    var v = html.split(",");
    document.getElementById('fUpdateSystemName').value = v[0];
        if (v[1] == "true"){
            alert("true");
            $('#fUpdateActiveFlag').setAttribute('checked','checked');
        }
    }

这是下拉列表:

<td valign="top"><form:checkbox path="fUpdateActiveFlag"
name='fUpdateActiveFlag' value="checked" />&nbsp;</td>

我无法让复选框在框中打勾。谁能发现我做错了什么?我知道它击中了 setAttribute 方法,因为它应该设置为 true 时显示警报框。

4

1 回答 1

2

$('#fUpdateActiveFlag')是 ID 选择器。

将其添加到您的复选框

<td valign="top"><form:checkbox ID="fUpdateActiveFlag" path="fUpdateActiveFlag"
name='fUpdateActiveFlag' value="checked" />&nbsp;</td>

此外,jQuery 函数不正确。setAttribute是 JavaScript 函数,虽然看起来您正在使用 jQuery 选择器,因此您选择的对象是 jQuery 对象,它没有名为 的方法setAttribute,而是使用.attr()

$('#fUpdateActiveFlag').attr('checked','checked')

请参阅工作示例http://jsfiddle.net/ruslans/8xp9g/

编辑:根据@Dementic 下面的评论,您可以继续使用该name属性,但是您必须将选择器更改为:

$('[name="fUpdateActiveFlag"]').attr('checked','checked');

见工作示例:http: //jsfiddle.net/ruslans/A4D8f/

于 2013-03-07T10:19:19.343 回答