Thema: Insertion.After Problem mit IE

Hi,

ich benutze prototype-1.4.0.js und habe Problem mit Insertion.After bei IE, hat jemand vielleicht schon damit Erfahrung gemacht und mir weiter helfen kann.

Die Code:
-- JavaScript --

...
var addPart = function() {
    var pc = self.document.getElementsByName('parts[]');
    var i = pc.length + 1;
    var content = '<p><label for="p'+i+'">'+i+'. Email:</label><input type="text" name="parts[]" size="20" class="txt" id="p'+i+'></p>';
    new Insertion.After('pc[(pc.length-1)], content);
}
...

-- HTML --

...
<div id="add_sub">
<a href="#" onclick="addPart(); return false;" name="add">more</a>
</div>'
...

funktioniert mit FireFox reibungslos. Mit IE nicht. IE bringt die Fehlermeldung:
die HTML-Quelle ist für diese Operation nicht gültig.

Danke!

2

Re: Insertion.After Problem mit IE

Hallo,

das Problem bei Deinem Beispiel liegt daran, dass Du ja nicht nur ein INPUT Element erzeugst, sondern dieses in ein Label und eine P-Tag einbettest. Wenn man nun ein neues Element an das letzte INPUT hängen will (parts[]), wird dieses nach dem ersten Einfügen vom IE nicht gefunden. FF hängt den Content dann einfach an des INPUT-ELEMENT an .. der IE hat damit Probleme. Du könntest das Beispiel etwa wie folgt lösen:

<div id="add_sub">
<a href="#" onclick="addPart(); return false;" name="adds[]">more</a>
</div>
<script type="text/javascript">
var addPart = function() {
    var pc = document.getElementsByName('adds[]');
    var i = pc.length+1;
    var content = '<p id="adds[]"><label for="p'+i+'">'+i+'. Email:</label><input type="text" name="parts[]" size="20" class="txt" id="p'+i+'" /></p>';
    new Insertion.After(pc[i-2], content);
}
</script>

vg
Hannes

_______________________________________________________________

/-/annes (j|g) ... http://www.jg-webdesign.de