dynamisch JS-Code einfügen im IE
Frank Weber
- javascript
Hallo,
ich habe ein Formular das ich um einen onsubmit-Handler erweitern will wenn der User JS zulässt.
Hier der etwas vereinfachte Kern:
<form id="formEl" method="post" action="another.html">
<input type="text" value="Test" />
<input type="submit" name="submit" value="Go" />
</form>
<script type="text/javascript">
var formElement = document.getElementById("formEl");
if (formElement != null)
{
var onsubmitAttribute = document.createAttribute("onsubmit");
onsubmitAttribute.nodeValue = 'alert("Hier"); return false;';
formElement.setAttributeNode(onsubmitAttribute);
}
</script>
In Firefox, Opera und Safari funktioniert das, der IE (6 und 7) ignoriert das onsubmit einfach und ruft another.html per POST auf.
Sehe ich mir nach dem Setzen des Attributs dieses per formElement.onsubmit oder formElement.getAttribute("onsubmit") an, steht auch das Passende drin.
Schreibe ich das onsubmit-Attribut aber im HTML-Code ins formular-Element, macht auch der IE was er soll. Die Lösung habe ich trotz Suche in Selfhtml und im Forum nicht gefunden - wahrscheinlich die falschen Begriffe benutzt. Wäre schön wenn mir jemand von euch weiterhelfen könnte.
Grüße,
Frank
Schreibe ich das onsubmit-Attribut aber im HTML-Code ins formular-Element, macht auch der IE was er soll. Die Lösung habe ich trotz Suche in Selfhtml und im Forum nicht gefunden - wahrscheinlich die falschen Begriffe benutzt. Wäre schön wenn mir jemand von euch weiterhelfen könnte.
Gib mal deinen Variablen Namen eine andere Form
var form_element
Man weiss nie wann man da auf einen bereits reservierten Objektnamen tritt.
mfg Beat
Hallo,
var onsubmitAttribute = document.createAttribute("onsubmit");
onsubmitAttribute.nodeValue = 'alert("Hier"); return false;';
formElement.setAttributeNode(onsubmitAttribute);
Gleiches Problem wie hier:
https://forum.selfhtml.org/?t=174461&m=1145987
Mathias