Event geht nicht...
Florian
- javascript
0 Thomas Meinike0 Cheatah0 Florian
0 Struppi0 Florian
Hallo zusammen,
Ich habe ein kleines Problem.
Das folgende Skript ist fehlerfrei, aber das generierte <INPUT>-Tag führt die Funktion die unter onblur definiert ist nicht aus.
var TABLE = document.getElementById("tab").insertRow(document.getElementById("tab").getElementsByTagName("tr").length);
var TD = document.createElement("td");
TD.setAttribute("align","center");
var INPUT = document.createElement("input");
INPUT.setAttribute("type","text");
INPUT.setAttribute("name","kt"+nextid);
INPUT.setAttribute("id","kt"+nextid);
INPUT.setAttribute("size","3");
INPUT.setAttribute("maxlength","3");
INPUT.setAttribute("onblur","createElements("+nextid+")");
TD.appendChild(INPUT);
TR.appendChild(TD);
TABLE.appendChild(TR);
Kann mir da bitte jemand einen Tipp zukommen lassen.
MfG
Florian
Hallo,
INPUT.setAttribute("onblur","createElements("+nextid+")");
Probiere es mit:
INPUT.setAttribute("onblur","createElements("+nextid+")",true);
oder
INPUT.onblur="...";
MfG, Thomas
Hallo,
INPUT.setAttribute("onblur","createElements("+nextid+")");
Probiere es mit:
INPUT.setAttribute("onblur","createElements("+nextid+")",true);
oder
INPUT.onblur="...";
MfG, Thomas
Ich habe beides ausprobiert und beide funktionieren nicht.
Hallo,
Ich habe beides ausprobiert und beide funktionieren nicht.
Alternative:
INPUT.onblur=function(){createElements(nextid);}
MfG, Thomas
Hi,
INPUT.setAttribute("onblur","createElements("+nextid+")");
was steht in nextid, und ist der erzeugte Attributwert aus JavaScript-Sicht gültig?
Cheatah
Hi,
INPUT.setAttribute("onblur","createElements("+nextid+")");
was steht in nextid, und ist der erzeugte Attributwert aus JavaScript-Sicht gültig?
Cheatah
In nextid steht einfach nur die nächste Zeilennummer.
JavaScript kann das Element ansprechen und gibt mir keinen Fehler aus. Auch die Eigenschaft onblur wurde richtig gesetzt wenn ich sie mit alert() auslese.
Hallo zusammen,
Ich habe ein kleines Problem.
Das folgende Skript ist fehlerfrei, aber das generierte <INPUT>-Tag führt die Funktion die unter onblur definiert ist nicht aus.
Weiter unten behauptest du, das ein alert() ausgeführt wird. Dann kan es eigentlich nur daran liegen, dass die Funktion createElements() nicht funktioniert, oder?
Ansonsten ist deine Fehlerbeschreibung dürftig. Du meinst also es gibt keine Fehlermeldung der onblur event wird nicht geworfen, aber die Funktion wird nicht ausgeführt?
Irgendwo in dieser Kette muss ein Fehler deinerseits sein. Wo läßt sich aber nicht beurteilen, da du uns ja nur funktionnierenden Code zeigst.
Struppi.
Ich habe nun eine Lösung für mein Problem gefunden.
Ein Event läßt sich nicht einfach mit [object].setAttribute() generieren.
Dafür muss man schon z.B. [object].attachEvent("onblur",alert)
Wichtig ist dabei allerdings, dass eine Funktion zwar auf diese Weise aufgerufen wird, aber man ihr keine Parameter mitschicken kann.
Also heißt die Zeile bei mir nun:
INPUT.attachEvent("onblur",next);
<script>
function next() {
nextid = nextid + 1; // Globale Variable
createElements();
}
</script>
Ich danke trotzdem allen für die schnelle Hilfe.
MfG
Florian
P.S. @cheatah Tut mir leid, dass meine Codeschnippsel unvollständig waren. Das nächste mal mache ich es anders.
Hallo,
Ich habe nun eine Lösung für mein Problem gefunden.
Ein Event läßt sich nicht einfach mit [object].setAttribute() generieren.
Es geht nicht um ein Event, sondern einen Event-Handler.
Dafür muss man schon z.B. [object].attachEvent("onblur",alert)
Wichtig ist dabei allerdings, dass eine Funktion zwar auf diese Weise aufgerufen wird, aber man ihr keine Parameter mitschicken kann.
Man kann das durchaus auch mit setAttribute() realisieren, auch mit Parameteruebergabe:
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test by TM 09/03</title>
<script language="JavaScript" type="text/javascript">
<!--
function Hallo(text)
{
alert(text);
}
function Test()
{
document.getElementById("abc").setAttribute("onclick",function(){Hallo('ok')},true);
}
//-->
</script>
</head>
<body onload="Test()">
<form action="">
<input id="abc" type="button" value="Klick mich!">
</form>
</body>
</html>
MfG, Thomas
Hi,
P.S. @cheatah Tut mir leid, dass meine Codeschnippsel unvollständig waren. Das nächste mal mache ich es anders.
das begrüße ich zwar, aber wieso es Dir leid tut, ist mir nicht ganz klar ...? Ich hatte eine Vermutung, woran es liegen könnte, und brauchte dazu einfach nur 'ne zusätzliche Information. Danach hatte sich meine Vermutung auch schon erledigt :-)
Cheatah