devileye1: Event nachträglich ändern!

Hallo!

Ich möchte das onClick- Event eines Buttons nachträglich ändern:

Mein Problem ist, dass nach der Funktionsübergabe, die Funktion in Knopf2 nicht ausgeführt wird.

Zur erläuterung: Ich möchte das onClick- Event von Knopf2 durch Knopf1 ändern. Vielleicht kann mir jemand sagen warum das nicht funktioniert. Habe hier schon im Forum geguckt, aber nicht so recht ne Antwort gefunden!

Ich hier ist mein derzeitiges Script.

<html><head><title>Test</title>
<script type="text/javascript">
<!--
 function ChangeOnClick() {
document.getElementsByName("Knopf2")[0].onclick = "alert('klappt');";
alert(document.getElementsByName("Knopf2")[0].onclick);
}
//-->
</script>
</head><body>
<form name="Formular" action="">
<input type="button" name="Knopf1" value="Knopf1" onClick="ChangeOnClick();"><br>
<input type="button" name="Knopf2" value="Knopf2" onClick="alert('Test');">
</form>
</body></html>

  1. <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function ChangeOnClick() {
    document.getElementsByName("Knopf2")[0].onclick = "alert('klappt');";

    getElementById ist nicht nötig und du musst dem event eine funktionsreferenz zuweisen, keinen String.

    und sinnvollerweise kannst du hier 'this' nutzen:

    <input type="button" name="Knopf1" value="Knopf1" onClick="ChangeOnClick();"><br>

    <input type="button" name="Knopf1" value="Knopf1" onClick="ChangeOnClick(this);">

    Dann noch die Funktion anpassen:

    function ChangeOnClick(el) {
    el.form["Knopf2"].onclick = function() { alert('klappt'); };
    }

    fertig (da ungetestet)

    Struppi.

    1. Vielen Dank für die Hilfe!

      habe es gestern auch gleich hinbekommen!

      Bin jetzt glücklich ;-)