1

我在创建单选按钮克隆时遇到了IE7中的问题。我正在动态更新名称和ID属性,但是,我仍然有一个问题,即单选按钮被重新设置,以重置其他动态创建的其他任何按钮。任何想法如何可以解决? Here is a fiddle of the issue当动态创建IE7单选按钮问题

这是JS代码操纵表单字段:

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

    $('.questions_clonable:not(.questions_clonable: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; 

      // Store previous number for replacing with current in cloned block input fields 
       var prev = i-1; 

       // Update input name to make it unique 
       new_block.find('input').each(function() {  
        this.name = this.name.replace(prev, i); 
        this.id = this.id + i; 
       }); 

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

     } 
    } 
});​ 

回答

0

我发现了几个可能修复这一点,但下面的工作完美:

function setElementName(elems, name) { 
     if ($.browser.msie === true){ 
      $(elems).each(function() { 
       this.mergeAttributes(document.createElement("<input name='" + name + "'/>"), false); 
      }); 
     } else { 
      $(elems).attr('name', name); 
     } 
    } 
3

IE7与动态创建的单选按钮的问题,这是奇怪的,因为它是这样一个惊人的浏览器。看来IE7不会让你重命名单选按钮的name属性。

Here是一种可能的解决方法。