apprentice
02-17-2011, 03:27 PM
I have a form with dynamic fields. Javascript is used to clone multiple fields. Each time a set of field is cloned, I am trying to set a unique name for each attribute .e.g yourname[], yourname_1[] yourname_2[]. The corresponding line is (newField[i].setAttribute("name", theName + "_" + i );) however its not seem to be working, values remain the same. What i'm I doing wrong?
var counter = 0;
function moreItems() {
counter++;
var newFields = document.getElementById('readRoot').cloneNode(true);
newFields.id = '';
newFields.style.display = 'block';
var newField = newFields.childNodes;
for (var i=0;i<newField.length;i++) {
var theName = newField[i].name;
if (theName){
newField[i].name = theName + "_" + i;
newField[i].setAttribute("name", theName + "_" + i );
}
}
var insertHere = document.getElementById('writeroot');
insertHere.parentNode.insertBefore(newFields,insertHere);
}
//window.onload = moreItems;
HTML Form
<div id="readRoot">
<p>Your Name: <input id="text" name="yourname[]" />
<br />
E-mail: <input id="text" name="email[]"/>
<br />
Fav Colour: <input id="text" name="colour[]" /></p>
</div>
<span id="writeroot"></span>
<input type="button" value="Add Another Item" onclick="moreItems()" />
<p>Your comments:<br />
<textarea id="comments" name="comments" rows="10" cols="40"></textarea></p>
<p><input type="submit" value="Send it!"></p>
</form>
</body>
</html>
var counter = 0;
function moreItems() {
counter++;
var newFields = document.getElementById('readRoot').cloneNode(true);
newFields.id = '';
newFields.style.display = 'block';
var newField = newFields.childNodes;
for (var i=0;i<newField.length;i++) {
var theName = newField[i].name;
if (theName){
newField[i].name = theName + "_" + i;
newField[i].setAttribute("name", theName + "_" + i );
}
}
var insertHere = document.getElementById('writeroot');
insertHere.parentNode.insertBefore(newFields,insertHere);
}
//window.onload = moreItems;
HTML Form
<div id="readRoot">
<p>Your Name: <input id="text" name="yourname[]" />
<br />
E-mail: <input id="text" name="email[]"/>
<br />
Fav Colour: <input id="text" name="colour[]" /></p>
</div>
<span id="writeroot"></span>
<input type="button" value="Add Another Item" onclick="moreItems()" />
<p>Your comments:<br />
<textarea id="comments" name="comments" rows="10" cols="40"></textarea></p>
<p><input type="submit" value="Send it!"></p>
</form>
</body>
</html>