2016-03-02 77 views
0

的改變名字,我有像這樣使用Javascript - 二維數組

<input type="text" name="testingOptions[Food][Burger1]" class="form-control" id="Food"> 

輸入此刻,如果選擇一個複選框,我克隆此輸入。在我的克隆內

var inputOrgName = clone.find('input').attr('name'); 
clone.find('input').attr('name', inputOrgName); 

因此,這給克隆的輸入與原始相同的名稱屬性。問題是,我需要在克隆名稱的末尾添加Test。所以我的目標是這樣的

<input type="text" name="testingOptions[Food][Burger1Test]" class="form-control" id="Food"> 

有沒有什麼辦法可以做到這一點?

感謝

+1

您的標題有點誤導您試圖更改輸入字段的名稱,而不是數組的名稱(儘管我理解您爲什麼這樣寫)。我的建議是使用JavaScript生成輸入字段而不是使用克隆,然後嘗試重新命名新創建的字段,因爲這會導致一些頭痛。由於我沒有回答你的問題,我不會作爲答案提交。 –

+1

此外,如果你克隆輸入也id會重複。如果您使用javascript手動創建輸入,則會更好。 –

+0

你使用的這個'clone'函數是什麼?當我嘗試使用它時,出現錯誤:'Uncaught ReferenceError:clone is not defined(...)' –

回答

1

你的問題是要改變輸入字段的名稱,而不是數組,我認爲將最適合你的是string replace解決方案。

因此,請修改您的代碼以將新字符串替換爲字符串test。使用正則表達式會更簡單。

clone.find('input').attr('name', inputOrgName.replace(/]$/g,'Test]')); 

這必須得到您想要的輸出。