• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[JavaScript] Button erzeugen / Funktion aufrufen

Alecco

Transparent von Croncels
Registriert
17.02.09
Beiträge
306
Hi,

ich erzeuge ein Formular mit JavaScript. Ich habe auch einen Button erzeugt, aber ich weiß nicht, wie ich ihm ein onClick Event zuweisen kann.

Ich habe bisher folgendes:

Code:
...
document.write("<input type='button' value='weiter' onClick="+test()+">");
...


Mit diesem Code wird die Funktion direkt beim Laden der Seite aufgerufen.
 

naich

Pomme d'or
Registriert
22.11.08
Beiträge
3.082
Ich glaube das was du da geschrieben hast willst du nicht ;)

wenn du die Funktion durch den Button aufrufen willst, musst du die "+" wegmachen (alles 1 String). Und natürlich muss die Funktion test() definiert sein...
 

nickdesignz

Friedberger Bohnapfel
Registriert
09.01.09
Beiträge
535
Ich bin ein Javascript Künstler aber muss das nicht so gehen?
onClick="+test+()">"); ???
 

Alecco

Transparent von Croncels
Registriert
17.02.09
Beiträge
306
Also wenn es nur 1 String ist, dann passiert bei mir nicht.

BTW:

Code:
function test(){
    alert("Es klappt!");    
}

:D
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Ich übersetze mal, was Du da geschrieben hast (sollte eigentlich für jeden Programmierer offensichtlich sein):

Code:
document.write("<input type='button' value='weiter' onClick="+test()+">");

Gib den folgenden String aus:
"<input type='button' value='weiter' onClick=ABC>",
aber zuvor rufe test() auf und ersetze im String das "ABC" durch das von der Funktion test zurückgegebene Ergebnis. In Deinem Fall ist das Ergebnis void, d.h. es wird einfach folgendes ausgegeben:
<input type='button' value='weiter' onClick=>

Das ist nicht einmal valides HTML.

Selbstverständlich muss es wie folgt heißen:
Code:
document.write("<input type='button' value='weiter' onClick='test()'>");

Wenn das nicht funktioniert, würde ich mir mal Gedanken machen, ob die Funktion test() überhaupt verfügbar/eingebunden ist.
 

Alecco

Transparent von Croncels
Registriert
17.02.09
Beiträge
306
Ich habe das anders gelöst. Aber so wie oben beschrieben hat es nicht geklappt :(
 

knalli

Stechapfel
Registriert
19.01.10
Beiträge
159
Noch so ein document.write Künstler, wie ich bereits eben schrieb: Besser Abstand davon nehmen und DOM-Manipulationen direkt machen.

Zwei weitere Anmerkungen:
a) onClick="+test()" ist selbstverständlich Kappes :p
b) auch sowas besser auslagern, also bspw. mit document.getElementById('buttonId').onclick = test; Das gleiche gilt auch für das Body onload Event.