Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

JavaScript ausführen bei Enter Taste





Frage

Ich habe ein JavaScript geschrieben, das bei Klick auf einen Button ausgeführt wird. Das Problem ist jetzt nur, dass ich möchte, dass das Script auch ausgeführt wird, wenn man Enter drückt. Ich weiß, dass Enter die Konstante 13 hat, weiß aber nicht wie ich das einbauen soll, dass auch bei einem Druck auf Enter das Script ausgeführt wird.

Antwort 1 von rfb

Antwort 2 von dark-zero-punk

Okay, danke.

In Links funktioniert das jetzt. Aber auch nur wenn du Alt + eine Taste drückst.

Das Problem ist ja, dass mein "Link" ein Button ist und damit das JavaScript auslöst.

<input type="button" value="weiter" onClick="script()">


Wie muss ich das in den Button mit einbinden, weil ich kann das ja nicht einfach mit
accesskey="13"
reinschreiben.

Antwort 3 von rfb

1. könntest du einen "normalen" Link wie einen Button designen (mit CSS ganz simpel)
2. gibt´s Acceskey auch bei <input> und <button>
3. reagiert der submit-Button von Formularen auch auf Enter, solange der Focus innerhalb des Formulars ist

Antwort 4 von dark-zero-punk

Wie meinst du das mit dem Focus und so ??

Weil ich kenn mich mit Formularen nicht so gut aus.

Antwort 5 von rfb

Fokus = Aktiv, z.B. wenn der Cursor innerhalb des Elementes ist oder dies einmal angeklickt wurde oder z.B. per JavaScript der Fokus ins Element gelegt wird.

Antwort 6 von dark-zero-punk

Ich hab jetzt das Problem mit dem Submit Button, dass wenn ich den einbaue, dass er das Script nicht mehr prüft......:(

Antwort 7 von rfb

Zitat:
dass er das Script nicht mehr prüft.
ohen Quellcode kann ich das auch nicht

Antwort 8 von dark-zero-punk

<html>
<head>

<script language="JavaScript">
<!--
function test()
{
var eingabe;
eingabe = document.form.name.value;
if(eingabe=="Thomas")
{
alert("Herzlich willkommen " +eingabe);
top.location.href=´index2.html´;
}
else
{
alert(eingabe + " ist kein User dieser Page");
}
}
//-->
</script> 

</head>

<body>

<form name="form" action="">
<input type="text" name="name">
<input type="button" value="go!" onclick="test()">
</form>

</body>
</html>



Das möchte ich einfach mit einem Submit Button, weil einfach immer alle Enter drücken, anstatt auf den Button zu klicken. Ist n Beispiel........

Antwort 9 von Supermax

bau den Aufruf von test() in den onSubmit - Eventhandler des Formulars ein; dann wird test() immer aufgerufen, bevor das Formular abgeschickt wird, egal ob der User auf den Button klickt oder ENTER drückt.

Also
<form ... onSubmit="test()" >


Wenn die Funktion test den Wert "false" zurückgibt, wird der Formularinhalt nicht abgeschickt, d.h. der User kann dann noch Korrekturen an seiner Eingabe vornehmen.

Antwort 10 von dark-zero-punk

Hey danke danke danke :D

Das is genau das was ich gesucht hab ^^

Habs immer beim Button mit reingesetzt gehabt, da war der Fehler.

Danke an rfb auch nochmal für die Hilfe und die Accesskeys, die kann ich nämlich auch gut gebrauchen :)

Antwort 11 von dark-zero-punk

Gestern habe ich das so probiert gehabt und es ging, doch heute mache ich PC wieder an und wills nochmal testen, da geht es nicht mehr......

Mein Script sieht jetzt so aus:

<html>
<head>

<script language="JavaScript"> 
<!-- 
function test() 
{ 
var eingabe; 
eingabe = document.form.name.value; 
if(eingabe=="Thomas") 
{ 
alert("Herzlich willkommen " +eingabe); 
top.location.href=´index2.html´;
} 
else 
{ 
alert(eingabe + " ist kein User dieser Page"); 
} 
} 
//--> 
</script> 

</head> 

<body> 

<form name="form" action="" onSubmit="test()"> 
<input type="text" name="name"> 
<input type="submit" value="go!">
</form> 

</body> 
</html>



Wieso das jetz auf einmal ?? :(

Antwort 12 von dark-zero-punk

Nachtrag:

Er leitet nicht auf die Seite weiter wenn die Eingabe "Thomas" ist, da kommt dann nur:

........datei.html?name=Thomas

Antwort 13 von rfb

probiers so:

<html>
<head>
<script type="text/javascript">
<!--
function test()
{
var eingabe = document.form.name.value;
if(eingabe=="Thomas")
{
alert("Herzlich willkommen " +eingabe);
location.href="index2.html";
}
else
{
alert(eingabe + " ist kein User dieser Page");
}
}
//-->
</script>
</head>

<body>
<form name="form" action="javascript:test()">
<input type="text" name="name">
<input type="submit" value="go!">
</form>
</body>
</html>


Antwort 14 von dark-zero-punk

Jo das fuhnst wunderbar, thx :)

Meinst du das hat an daran gelegen ->
top.location.href=´index2.html´
???

Antwort 15 von rfb

das war das Hauptproblem, die restlichen Änderungen dienen zum Verschlanken des Codes, wodurch er in der Regel weniger störanfällig wird.

Antwort 16 von dark-zero-punk

Habs nomma alles getestet. Der Fehler lag da:

<form name="form" action="javascript:test()">


Das hatte ich da net drinstehen, sons fuhnst das script aba *gg*

Trotzdem hab ich die anderen Verbesserungen auch mit reingenommen.