javascript - 使用 jQuery 即时创建复选框元素 - 奇怪的 IE 行为

标签 javascript jquery internet-explorer

我正在使用 jQuery 动态创建一些复选框元素并将它们附加到节点,就像这样

var topics = ['All','Cat1','Cat2'];
var topicContainer = $('ul#someElementId');

$.each( topics, function( iteration, item )
{
    topicContainer.append(
        $(document.createElement("li"))
        .append(
            $(document.createElement("input")).attr({
                 id:    'topicFilter-' + item
                ,name:  item
                ,value: item
                ,type:  'checkbox'
                ,checked:true
            })
            .click( function( event )
            {
                var cbox = $(this)[0];
                alert( cbox.value );
            } )
        )
        .append(
            $(document.createElement('label')).attr({
                'for':  'topicFilter' + '-' + item
            })
            .text( item )
        )
    )
} );

我遇到的问题有两个(只有IE有)

  • 复选框已添加到页面,但当我为该值指定“true”时,它们的默认选中状态为未选中。 (使用“已检查”值进行测试没有任何区别)
  • alert( cbox.value ); 执行时,每次输出都是“on”。

我认为这里的核心问题是我需要一种更好的方法来设置复选框的默认选中状态,并设置它们的默认“值”属性。但我还没有找到其他方法。

注意:所有这些代码在 Firefox 和 Chrome 中运行良好。

这是使用 IE 7.0.5730.11 进行的 jQuery 1.3.1 测试

最佳答案

Internet Explorer 不喜欢让您更改不属于 DOM 的输入的选中值。尝试在附加项目后设置检查值,看看是否有效。

关于javascript - 使用 jQuery 即时创建复选框元素 - 奇怪的 IE 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/579135/

相关文章:

html - 在 anchor 标记中使用 bg-image 居中跨度

javascript - Javascript 在 IE8 中关闭窗口

javascript - WebRTC:在 JavaScript 和 native 代码对等方之间同步视频帧

javascript - 如何在javascript中按多个模式分割字符串?

javascript - npm 包上的 "at"(@) 前缀是什么意思?

jquery - Detect with JQuery when a select changes

javascript - jquery: 如果 (target) 是 ('.wrapper' 的 child ) then (do something)

javascript - 如何消除页面切换之间的闪烁? (JQuery 移动)

javascript - 如何在没有 If 语句的情况下执行通配符

html - 输入类型 ="image"未在 IE 中加载