2011-06-02 82 views
0

我有這個代碼改變輸入字段的名稱屬性值,在除IE8,IE7和IE6以外的所有主流瀏覽器中都有很好的效果。對於IE的名字只是name="participant_name[{i}]",應該是name="participant_name[1]"jQuery代碼-IE8問題

var i = 1; 
var input_name = null; 
$('.dubl input').each(function() { 
    var new_input_name = $(this).attr('name').substring(0, $(this).attr('name').indexOf('[')); 
    if (input_name !== new_input_name) { 
     input_name = new_input_name; 
     i = 1; 
    } 
    $(this).attr('name', input_name + '[' + i + ']'); 
    i++; 
}); 

HTML

<input type="text" name="participant_name[{i}]"> 

回答

1

它實際上是在改變屬性name正確的IE瀏覽器也是如此。但是,我認爲您可能遇到的問題是當您提交表單時,它不是更新字段name

IE不考慮name更改,因此,當表單發送時,它仍然使用與創建時相同的name。要解決這個問題,可以在更改name屬性時將它重新添加到DOM/form元素中。

http://jsfiddle.net/niklasvh/wbnhS/你可以在那裏測試它,屬性確實會改變,或者你在IE中檢查DOM。

+0

+1我只是打字出來:( – Matt 2011-06-02 13:36:54

+0

我有點困惑,我的腳本不改變名稱屬性,但在你提供的鏈接一切工作正常。但我還沒有明白我該如何修復這個。:( – elvis 2011-06-02 14:05:44

+0

@elvis你怎麼知道你的並沒有改變它呢?在哪裏出現意想不到的結果? – Niklas 2011-06-02 14:09:43

0

如果這不是您的項目中需要在客戶端上進行此類替換的唯一地方,那麼可能需要查看模板庫(例如jQuery Templates)。