есть форма для добавления литературного источника, в которой есть поля для списка авторов. часть авторов уже известна (массив authors_array), и пользователю надо дать возможность добавить новых авторов если необходимо. функция добавления новых авторов (moreFields) работает замечательно, а вот генерация полей на основании данных массива не работает!
Помогите разобраться.
Код:
// кусочек хтмл-кода задающего шаблон для генерации полей для авторов
<div id="readroot" style="display: none">
<input type="text" name="pubauthor" size="40" value="" id="pubauthor"/>
<input type="button" value="Remove author" onclick="this.parentNode.parentNode.removeChild(this.parentNode);" />
</div>
// собственно JavaScript
<script language="JavaScript">
<!-- ;
var counter = 0;
// сгенерированный массив
authors_array = new Array("Иванов", "Петров");
function fillauthorsarray(){
if(authors_array.length >= 1){
for(j=0; j<=authors_array.length; j++) {
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 + counter;
newField[i].id = theName + counter;
newField[i].value = authors_array(j);
}
}
var insertHere = document.getElementById('writeroot');
insertHere.parentNode.insertBefore(newFields,insertHere);
}
}
}
function moreFields() {
counter++;
alert (counter );//+ authors_array(counter-1)
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 + counter;
newField[i].id = theName + counter;
}
}
var insertHere = document.getElementById('writeroot');
insertHere.parentNode.insertBefore(newFields,insertHere);
}
window.onload = fillauthorsarray();
// end hide -->
</script>