2010-12-16 61 views
5

我有一個允許重複表單字段集的表單(請參見:http://jsfiddle.net/Sd9Ag/8/)。當輸入重複時,如何增加name屬性中的數組編號。當表單字段被克隆時遞增多維數組

例如:

<input type="input" name="question[1]" /> 
<input type="input" name="questionURL[1]" /> 
<input type="input" name="answer[1][]" /> 
<input type="input" name="answerURL[1][]" /> 

當它被克隆,遞增序列號:

<input type="input" name="question[2]" /> 
<input type="input" name="questionURL[2]" /> 
<input type="input" name="answer[2][]" /> 
<input type="input" name="answerURL[2][]" /> 

的原因,我需要做的是這樣的話,這些問題和答案進行分組時,表格已提交。

+0

http://www.jsfiddle.net/gaby/WZAU6/

參考

例如爲什麼不'問題[1] []''只是問題[1]'。似乎唯一重複的項目是答案。 – Stephen 2010-12-16 23:33:12

+0

嘿斯蒂芬,好點。我會更新這個問題來解決這個明顯的錯誤。 – superUntitled 2010-12-17 00:57:33

+0

爲什麼你需要使用數字而不僅僅是問題[],答案[]等? – 2010-12-17 02:00:29

回答

5

更新

好吧,我用你的jsfiddle(我錯過了我首先回答)代碼並做了一些修改。

  • 說明我改名爲qnote[1],以避免混淆回答Notes
  • 答案被命名爲answer[1][1]的第一回答第一個問題,對於answer[1][2]第二個答案,第一個問題... answer[2][1]的第一個答案的問題的第二個問題,等等。

工作碼在http://jsfiddle.net/dcUdU/1/


原來的答案

使用下面的代碼

elem.name = elem.name.replace(/\[(\d+)\]/,function(str,p1){ 
     return '[' + (parseInt(p1,10)+1) + ']'; 
     }); 

你已經克隆輸入元素each你從田地的最後一組需要clone

它使用正則表達式來查找[]中的數字並將其加1。在用於function as parameter to the replace method

+0

感謝Gaby,這不適用於我的jsFiddle示例,因爲它克隆了多個答案輸入。 – superUntitled 2010-12-17 00:34:36

+0

@superUntitled,更新了答案。 – 2010-12-17 01:13:45

+0

完美,謝謝。現在我必須研究這個美麗來弄清楚發生了什麼事情!謝謝,你給了我一套全新的功能來學習! – superUntitled 2010-12-17 02:14:54

1

看一看這一個:http://jsfiddle.net/sje397/z3SSL/1/

主要的變化是這樣的:

var emptyQ = $("li.question").clone(), 
    emptyA = $("li.answer").clone(); 

emptyQ.html(emptyQ.html() 
       .replace("question[" + (nextId - 1), "question[" + nextId) 
       .replace("qnotes[" + (nextId - 1), "qnotes[" + nextId)); 
emptyA.html(emptyA.html() 
       .replace("answer[" + (nextId - 1), "answer[" + nextId) 
       .replace("anotes[" + (nextId - 1), "anotes[" + nextId)); 
+0

感謝您的幫助!您提供的示例不起作用!表單輸入集不再正確複製。 – superUntitled 2010-12-16 23:41:26

+0

@superUntitled:我已經更新了我的答案。 – sje397 2010-12-16 23:47:54

+0

這似乎工作得更好,但是如果克隆了多個問題,數字總是2.是否有方法來存儲索引。呼!這是一個mindbender! – superUntitled 2010-12-17 00:33:24