С тем кодом так и не разобрался, но зато написал свой
<php
print_r($_POST);
?>
<form action="" id="add_release" method="post">
<div id="artists">
<input type="text" name="artist[0]" value="" />
</div>
<br />
<input id="addb" type="button" value="+" onClick="addArtist();" />
<input id="delb" type="button" value="x" onClick="removeArtist();" style="visibility:hidden" />
<br />
<input type="submit" value="Submit" />
</form>
<script>
num=0
function addArtist(){
var parent = document.getElementById('artists')
var child = document.createElement('span')
child.id = 'a' + num
child.innerHTML = '<input type="text" name="suffix[' + num + ']" value="" /><br /><input type="text" name="artist[' + ++num + ']" value="" />'
parent.appendChild(child)
document.getElementById('delb').style.visibility = "visible"
}
function removeArtist(){
var childId = 'a' + (num-1)
var parent = document.getElementById('artists')
var child = document.getElementById(childId)
parent.removeChild(child)
num = num-1
if(num == 0){
document.getElementById('delb').style.visibility = "hidden"
}
}
</script>
Оказывается все эти часы мучений из-за <table><form> вместо <form><table> O_O