[JS] Attribut onclick hinzufügen

klausschreiber

Well-known member
ID: 162475
L
6 Mai 2006
247
8
Hallo,

Ich habe ein Uploadformular, wo ich vorher nicht weiß, wieviele Uploadfelder benötigt werden. Damit der User nicht immer auf "Uploadfeld hinzufügen" oder ähnlichen klicken muss, soll automatisch ein weiteres Uploadfeld erscheinen, wenn man ein Uploadfeld ausfüllt. DIes geschieht mittels "onclick", was bei dem mittels html erstellten Feld auch wunderbar funktioniert. Ich bekomme es jedoch nicht hin, dass JavaScript bei den weiteren Feldern auch das onclick-Attribut hinzufügt. Ich habe leider fast gar keine Ahnung von JavaScript und hatte mir das aus dem Internet zusammengesucht.

Meine JavaScript Funktion:
PHP:
function addField() {
var newField = document.createElement('input');
newField.type = 'file';
newField.name = 'file[]';
newField.id = 'file[]';
newField.size = '77';
newField.onclick = 'addField();';
var newLine = document.createElement('br');
document.getElementById('uploadfields').appendChild(newLine);
document.getElementById('uploadfields').appendChild(newField);
}
Das "newField.onclick = 'addField();';" funktionierte nicht. Nach weiterer Suche fand ich dann heraus, dass folgendes im Firefox geht:
PHP:
newField.setAttribute("onclick","addField();");
(anstatt "newField.onclick = 'addField();';")
Im Internet Explorer geht es jedoch leider trotzdem nicht.

Falls benötigt, html-Ausschnitt:
HTML:
<form action="{$_SERVER['PHP_SELF']}" id="uploadform" enctype="multipart/form-data" method="post">
...
<div id="uploadfields">
<input type="file" name="file[]" onclick="addField();" id="file[]" size="77" />
</div>
...
</form>
Würde mich freuen, wenn mir jemand helfen könnte.

Gruß,
Klaus
 
Das onclick wird dann zwar im DOM-Inspector vom Firefox komischerweise nicht angezeigt, aber es scheint einwandfrei in beiden Browsern zu funktionieren. Vielen Dank.