0

根据下拉列表中选择的数字,我在克隆表单元素块时遇到 IE 问题。如果在下拉列表中选择了 3,我想重复问题块并操纵名称属性,以便它们对于每个块都是唯一的。这适用于 Chrome、FF 等,但不适用于 IE7 和 IE8。

编辑,原来它特定于 IE7 和 IE8:这是一个 jsfiddle

这是我的代码,我正在做的事情是已知的 IE 有问题吗?当前发生的所有事情是 IE 显示“null”而不是应该出现的每个块。谢谢你的帮助。

    // Dropdown select
    $('#quantity').live("change", function(){

        $('.questions_clonable:not(:first)').remove();

        // Get value of selection
        var num = $(this).val();

        var cloned_el = $('.questions_clonable').clone();   

        if (num > 1)
        {  
            for (var i = 1; i < num; i++)
            {
                // Assign cloned block to new var
                var new_block = cloned_el;  

                // Bit of a workaround needed to clone properly, reiterating class name
                $('.multiple_questions_container').append('<span class="questions_clonable hidden">'+new_block.html()+'</span>');

            }   
        }
    });

表单元素被包裹在一个跨度中,如下所示:

<span class="questions_clonable hidden">
4

1 回答 1

0

如果您只是使用 cloned_el 来获取 html,为什么不这样做

var cloned_el = $('.questions_clonable').clone();   

接着

var new_block = cloned_el;

只是为了调用 new_block.html(),你这样做:

var new_block_html = $('.questions_clonable').html(); 

那么你可以参考new_block_html。

如果您也可以发布您的标记,它可能会有所帮助,显然如果有任何 ID,这将导致一些错误。

$.live() 当前不支持 change 事件:当前不支持:blur、focus、mouseenter、mouseleave、change、提交docs.jquery.com/Events/live

您是否可以尝试使用 livequery 代替?docs.jquery.com/Plugins/livequery

编辑 - 或者尝试使用 .on() 事件而不是 .live(),演示

于 2012-11-07T10:11:55.670 回答