onclick Funktion ist nicht gleich onclick Funktion??
Dimitri Teplizki
- javascript
Hi zusammen!
Gleich mal zum Anfang: ich bin kein Mensch der sich in Java Script auskennt, und sich nie viel damit befasst hat.
Jedoch hab ich folgendes Problem mit nem Script auf meiner Seite:
Ich hab ein Feld auf meiner Seite, was der Besucher ausfüllt.
Zu dem ausgefüllten packt das Script noch ein .html dran und die sich daraus zusammengesetzte Seitenadresse wird geöffnet.
User gibt ein "Hallo" -> Es erscheint die Seite Hallo.html sobald er auf den Button daneben geklickt hat.
Soweit so gut..
Naja, oder auch nicht:
Dies klappt komischerweise nur, wenn man mit der Maus den Button anklickt. Wenn man per Enter-Taste bestätigt, kriegt der User nur
file://C:\Windows\Desktop\Seite\feld.html?code=Hallo in der Adressleiste geliefert.
Das Script sieht so aus:
<script language="javascript">
function pass( ) {
location.href=document.pwort.code.value + ".htm";
}
</script>
das formular sieht so aus:
<form name="pwort">
<div align="center">
<input name="code">
<input type="button" value="OK" onclick="pass( );">
</div>
</form>
Wie kann ich es einstellen, dass sowohl beim Klicken als auch beim Taste-Drücken das Script arbeitet wie es soll?
würd mich über eine Antwort freuen.
Danke vielmals
Dimitri
hi
<form name="pwort" onsubmit="pass( );">
<div align="center">
<input type="text" name="code">
<input type="submit" value="OK">
</div>
</form>
Wie kann ich es einstellen, dass sowohl beim Klicken als auch beim Taste-Drücken das Script arbeitet wie es soll?
siehe oben.
Grüße aus Bleckede
Kai
beim klicken auf enter wird dein form normal versendet, zumindest versucht das der browser... du hast aber keine action angegeben, willst du ja auch gar nicht. also unterdruecke das submitten und fueher statt dessen deine funktion aus. packe in dein form tag folgenden code: <form onSubmit="pass( ); return false";>
damit sollte es klappen, habs aber nicht getestet ;)
gruss, ich
kleiner vertipper im code, besser so:
<form onSubmit="pass( ); return false;">
hallo Dimitri,
Wenn man per Enter-Taste bestätigt, kriegt der User nur file://C:\Windows\Desktop\Seite\feld.html?code=Hallo
das sieht mehr als verdächtig aus, und ist dem Code, den du mitgeliefert hast nicht enthalten. Du hast möglicherweise nicht "alles", an deinem Code, was kritisch ist, mitgeliefert. Hast du eine Möglichkeit, deinen link auch mal mit einer anderen Plattform (LINUX, FreeBSD, Mac ...) zu prüfen? Wenn ja, wie iseht dann die Fehlerausgabe aus?
Das Script sieht so aus:
<script language="javascript">
function pass( ) {
location.href=document.pwort.code.value + ".htm";
}
</script>
daran gibts im Prinzip nix auszusetzen. Die Frage ist, ob der Rst deines HTML-Dokuments auch alle die Elemente enthält, die dieser Code ansprechen soll
das formular sieht so aus:
<form name="pwort">
<div align="center">
<input name="code">
<input type="button" value="OK" onclick="pass( );">
</div>
</form>
der einzige "Schönheitsfehler scheint hier zu sein, daß das DIV nicht _innerhalb_ des Formulars, sondern _drumherum_ positioniert werden sollte.
"onclick" ist ein EventHandler. Vielleicht hilft es dir schon ein wenig, nochmal in http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm nachzulesen, was dieser EventHandler tut.
Grüße aus Berlin
Christoph S.
Hallo,
das sieht mehr als verdächtig aus, und ist dem Code, den du mitgeliefert hast nicht enthalten. Du hast möglicherweise nicht "alles", an deinem Code, was kritisch ist, mitgeliefert. Hast du eine Möglichkeit, deinen link auch mal mit einer anderen Plattform (LINUX, FreeBSD, Mac ...) zu prüfen? Wenn ja, wie iseht dann die Fehlerausgabe aus?
Muss nich! ist ganz natürlich die Ausgabe, denn:
location.href=document.pwort.code.value + ".htm";
also: Wenn Enter-Taste, dann macht das Script an die aktuelle Adresse (file://C:\Windows\Desktop\Seite\feld.html) noch den "code" an (?code=Hallo)
Klar? Verständlich? Oder gar falsch?
Josef
hi Josef,
Wenn Enter-Taste, dann macht das Script an die aktuelle Adresse (file://C:\Windows\Desktop\Seite\feld.html) noch den "code" an (?code=Hallo)
Klar? Verständlich? Oder gar falsch?
naja, wenigstens verständlich. Ich halte es allerdings für eine der größten Dummheiten überhaupt, das Verzeichnis C:\Windows\Desktop (der Pfad kann in WinXP anders aussehen, aber auch in Win98, falls mehrere Benutzerkonten definiert sind) mit irgendwelchen Dateien zu belegen. Dieses Verzeichnis sollte so leer wie möglich bleiben - meiner Ansicht nach.
Christoph S.
hi Josef,
Wenn Enter-Taste, dann macht das Script an die aktuelle Adresse (file://C:\Windows\Desktop\Seite\feld.html) noch den "code" an (?code=Hallo)
Klar? Verständlich? Oder gar falsch?
Verständlich ist es schon, bleibt nur die Frage wie ich das ändern kann...
naja, wenigstens verständlich. Ich halte es allerdings für eine der größten Dummheiten überhaupt, das Verzeichnis C:\Windows\Desktop (der Pfad kann in WinXP anders aussehen, aber auch in Win98, falls mehrere Benutzerkonten definiert sind) mit irgendwelchen Dateien zu belegen. Dieses Verzeichnis sollte so leer wie möglich bleiben - meiner Ansicht nach.
Das ist ja auch nich das Verzeichniss in dem das ganze laufen soll...
Ich mache die Seiten schließlich auf meiner Festplatte, und irgendwo müssen die ja vorläufig gespeichert werden..
DT
hallo Dimitri,
Das ist ja auch nich das Verzeichniss in dem das ganze laufen soll...
Ich mache die Seiten schließlich auf meiner Festplatte, und irgendwo müssen die ja vorläufig gespeichert werden.
ja, das stelle ich auch nicht in Frage. Ich rate immer dazu, sich ein Verzeichnis C:\prjekte (und darin beliebig viele Unterverzeichnisse) anzulegen, falls man nicht eine andere Partition zur Verfügung hat. Microsoft hat gerade dafür das Konzept mit "Eigene Dateien" entwickelt, das von viel zu vielen usern auch prompt angenommen wird. Ich halte überhaupt nichts davon. Aber du mußt diese Ansicht nicht teilen.
Das C:-Laufwerk sollte meiner Ansicht nach grundsätzlich nichts anderes enthalten als eben die Systemumgebung und eventuell "Dokumente und Einstellungen" und, wenns denn nicht anders geht, auch noch "Programme". Als Laufwerk (bzw. Partition), auf dem das %systemroot% liegt, ist es leider anfällig gegenüber erwünschten und vor allem auch unerwünschten Manipulationen über die online-Verbindung.
Alles, woran man selber arbeitet, was also als "persönliche Daten" zu definieren ist, sollte möglichst nicht auf C:\ liegen
Christoph S.
Hi!
Du hast recht!
Das Microsoft WIndows eigene Eigene Dateien Verzeichniss ist der erste Anlaufpunkt für Spyware und Trojaner, wenns um persönlich Daten geht. Da kann man den Eigene Dateienb Pfad sont wo hinlegen. Die "Anti"-Programme findens dank der Variable in den Systemdateien.
Ich kann nur empfehlen: D: Partition anlegen und unterordner machen [meins: D:\I-Net\html\pages\hp-neu...]
Josef [der mal wieder geschwollenes Hochdeutsch mit miesa Rechdschraibunck und Ausdruckswaisä veraihnd]
Tach
das formular sieht so aus:
<form name="pwort">
<div align="center">
<input name="code">
<input type="button" value="OK" onclick="pass( );">
</div>
</form>
der einzige "Schönheitsfehler scheint hier zu sein, daß das DIV nicht _innerhalb_ des Formulars, sondern _drumherum_ positioniert werden sollte.
Unsinn. form ***muß*** blocklevel-Elemente (z.B. div enthalten) und/oder script-Elemente enthalten.
form darf input nicht direkt enthalten.
Nachzulesen hier:http://www.w3.org/TR/html4/interact/forms.html#edef-FORM
wo es heißt:
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->
(Bedienungsanleitung: http://www.w3.org/TR/html4/intro/sgmltut.html)
Andreas
Hi Andreas,
Unsinn. form ***muß*** blocklevel-Elemente (z.B. div
enthalten) und/oder script-Elemente enthalten.
form darf input nicht direkt enthalten.
Nachzulesen hier:
http://www.w3.org/TR/html4/interact/forms.html#edef-FORM
wo es heißt:
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) --
interactive form -->
wo innerhalb des bisherigen Thread wurde behauptet,
daß das Dokument valides "HTML 4.01 strict" sein muß?
Viele Grüße
Michael