onclick nachtraeglich hinzufuegen
henk
- javascript
Hallo *,
Ich moechte einigen Elementen in einem form ein onclick event zuordnen.
Ich muss dies nachtraeglich machen, weil zur Zeit des aufbaus noch nicht alle Variablen belegt sind.
Es soll beim onclick event eine funktion aufgerufen und ein Paramenter mit uebergeben werden.
hier mal meine codeversuche
document.calform.elements[i].onclick=call_output_date; --- funktioniert, aber kein Parameter
document.calform.elements[i].onclick=call_output_date(ii) --- funktioniert nicht, da die funktion gleich aufgerufen wird
document.calform.elements[i].onclick='call_output_date(ii)'; --- geht gar nicht
Hat jemand eine Idee? Ich blick bei den ganzen Funktionsreferenzen noch nicht so ganz durch, wann muss ich sie nehmen und wann nicht?
danke
henk
Hallo henk,
schau dir mal diesen Thread an, da wurde mir einiges zu diesem Problem erklärt - vllt. hilft es dir ja auch.
Gruß
Martin
Hi,
document.calform.elements[i].onclick=call_output_date; --- funktioniert, aber kein Parameter
... = new Function("alert(this.offsetLeft)");
Gruesse, Joachim
... = new Function("alert(this.offsetLeft)");
danke danke das funktioniert!
Dafuer hab ich jetzt ein neues Problem :(
Und zwar uebergebe ich der Dunktion eine Variable die sich staendig veraendert.
Beim onclick event wird dann die funktion richtig aufgerufen, aber immer mit dem letzten Wert der Variablen.
Hier mal ein einfaches Beispiel.
for(i = 1; i < 10; i++)
{
.....
.....
document.calform.elements[i].onclick= new Function("call_output_date(i)");
.....
}
Beim Aufruf wird immer der Wert 10 an die Funktion uebergeben.Und nicht je nach Feld 1,2,3 ...
Wie kann ich denn meiner funktion beibringen, dass sie nicht den Wert der Variablen beim aufruf dieser ausliesst, sondern vorher "statisch" abspeichert?
danke
henk
hi,
Beim onclick event wird dann die funktion richtig aufgerufen, aber immer mit dem letzten Wert der Variablen.
weil das vermutlich ihr aktueller wert ist.
for(i = 1; i < 10; i++)
{
document.calform.elements[i].onclick= new Function("call_output_date(i)");
probiere mal
... = new Function("call_output_date("+i+")");
gruß,
wahsaga
weil das vermutlich ihr aktueller Wert ist.
Genau das ist es was ich sagen wollte.
for(i = 1; i < 10; i++)
{
document.calform.elements[i].onclick= new Function("call_output_date(i)");probiere mal
... = new Function("call_output_date("+i+")");
Ja das ist die Loesung des Problems bzw meiner Unwissenheit, danke!
Gruss
henk
Es soll beim onclick event eine funktion aufgerufen und ein Paramenter mit uebergeben werden.
hier mal meine codeversuche
document.calform.elements[i].onclick=call_output_date; --- funktioniert, aber kein Parameter
Wozu brauchst du den Parameter?
Struppi.
Wozu brauchst du den Parameter?
Um es kurz zu machen.
Ich habe einen Kalender, beim Click auf einen Calendertag soll ein Perlscript aufgerufen werden und ihm das angeklickte Datum uebergeben werden.
Um dies zu tun muss ich herrausfinden, auf welchen Tag der Anwender geklickt hat.
Meine Idee ist, die Funktion, die mir dynamisch den Kalender fuellt, soll auch zu jedem Feld ein onclick event hinterlegen wleches dann den Tag mit an die funktion uebergibt.
Ich hatte auch schon versucht herrauszufinden, welches Element gerade den focus hat und dann quasi den Wert auszulesen, aber da bin ich nicht weit gekommen, da ich nicht weiss wie man das Element herrausbekommt welches den Focus hat.
Wenn du eine bessere Moeglichkeit weisst, immer her damit, bin fuer jede Hilfe dankbar.
Gruss
henk
» Meine Idee ist, die Funktion, die mir dynamisch den Kalender fuellt, soll auch zu jedem Feld ein onclick event hinterlegen wleches dann den Tag mit an die funktion uebergibt.
Ich hatte auch schon versucht herrauszufinden, welches Element gerade den focus hat und dann quasi den Wert auszulesen, aber da bin ich nicht weit gekommen, da ich nicht weiss wie man das Element herrausbekommt welches den Focus hat.
das ist this
Deshalb hatte ich gefragt.
Wenn du eine bessere Moeglichkeit weisst, immer her damit, bin fuer jede Hilfe dankbar.
[Element].onclick = getDatum;
function getDatum()
{
alert(this.firstChild.data); // z.b.
}
Struppi.
[Element].onclick = getDatum;
function getDatum()
{alert(this.firstChild.data); // z.b.
}
Hm ja was soll ich sagen, dass ist wohl der bessere Weg.
Koennt mich nur darueber aergern, dass ich nicht selbst darauf gekommen bin :(
danke
Gruss
henk