Bei Enter drücken Button aktivieren

Miraculixx

Erfahrenes Mitglied
Ich habe ein Problem, für das es wahrscheinlich so viele Lösungen gibt, dass ich damit schon wieder überfordert bin.
Ich habe eine Form, in der viele Submit-Buttons mit unterschiedlichen Namen sind. Wenn der Cursor in einem bestimmten Textfeld steht und die Enter-Taste gedrückt wird, dann soll ein bestimmter Button aktiviert werden (oder zumindest die gleiche Aktion ausgeführt werden wie bei dem Button).
Ich dachte mir, ich mache das mit dem Parameter onKeyDown, allerdings bin ich ziemlicher Javascript-Neuling und weiß daher nicht, was ich dann in die Funktion schreiben soll, die aufgerufen wird.
Kann mir da bitte jemand weiterhelfen?

Vielen Dank, Miraculixx
 
Meinst du mit "Aktivieren", dass der Button disabled ist und nun enabled werden soll, oder meinst du, dass das Formular gesendet werden soll, und zwar so, als ob man den Button gedrückt hätte?
 
Zweiteres.
Also in meinem Fall steht beim Button dabei: onclick="oldSiteFunc()"
Und ich möchte eben, dass das ausgeführt wird, wenn in dem bestimmten Textfeld die Enter-Taste gedrückt wird.
 
Das geht so:

Code:
onkeypress="if(event.keyCode==13){document.getElementById('idDesButtons').click();"
..es wird der beim Drücken einer Tastaturcode abgefragt. Ist der 13, war es die [ENTER]-Taste, und es wird die Methode click() auf den Button angewendet.

Beachte aber, dass dadurch auch das Formular gesendet wird...wie üblich beim Klick auf einen Submit-Button.
 
Ah danke für die schnelle Antwort, jetzt weiß ich das auch.
Aber mir ist gerade eine andere Idee gekommen:
Wäre es nicht auch möglich, noch eine zusätzliche Form zu erstellen?
Das ganze sähe dann ungefähr so aus:
PHP:
<form action=irgendwas>
  [-code-]
  <form action="myFunc()">
  <input type="submit"...>
  <input type="text"...>
  <input....>
  </form>
[-code-]
</form>

Innerhalb der inneren Form wäre dann nämlich nur ein Submit-Button. Das hat zwar nichts mehr mit Javascript zu tun, aber ich denke du weißt es trotzdem, ob das so möglich ist, oder? :)
 
Nö...das ist so nicht möglich, Formulare kann man nicht verschachteln.:(

Wenn das Formular beim Klick auf diesen Button generell nicht gesendet werden soll, dann nehme doch einen Button mit type="button"
 
Hmm... dacht ich mir schon.
Dann eben doch Javascript :)
Das ganze wäre nämlich doch für mehrere Textfelder notwendig (insgesamt 6 stk.), da muss ich den Text dann wahrscheinlich zu jedem Textfeld dazukopieren. Bzw. wahrscheinlich ist es dann einfacher, eine eigene Funktion zu schreiben, die dann immer aufgerufen wird!?

Ahja, und was ist mit der ID des Buttons gemeint?
 
Miraculixx hat gesagt.:
Ahja, und was ist mit der ID des Buttons gemeint?


Code:
<input type="submit" id="idDesButtons">
...über die ID(falls vorhanden) kannst du jedes Seitenelement bequem und eindeutig ansprechen.


Ansonsten:
Wenn du genau erkären würdest, was genau in deinem Formular vonstatten gehen soll, liesse sich bestimmt eine gute Lösung finden:)
 
Ah OK sorry...
also folgender Code:
HTML:
<form>
..... <table> ......
  <tr bgcolor="#ddaaaa" >
  <td>1</td>
  <td><input type=submit value="OK" name="BUTTON_OK200567" onclick = "myFunc()"></td>
  <td>&nbsp;</td>
  <td><input type=text name="NR" size="6" value="117"></td>
  <td>Organisation & Installation intern</td>
  <td><input type=text name="UNR" size="5" value="1"></td>
  <td><input type=text name="TOP200567" size="5" value=""></td>
  <td>Organisation & Installation intern</td>
  <td><a href="./TServ?SUCHEN=Suchen" target=new>TR-L</a></td>
  <td><input type=text name="BM200567" size="30" value="asdfasdf" onkeypress="if(event.keyCode==13){document.getElementById('idDesButtons').click()};"></td>
  <td><input type=text name="DAUER" size="5" value="4.95"></td>
  <td><input type=text name="DATUM" size="10" value="2005.08.23"></td>
  <td><input TYPE=checkbox VALUE="checked" NAME="100200567"></td>
</tr>
.....
</table>
....
</form>

Davor und danach gibts noch mehrere <tr>s, aber es geht hier nur um diese Tabellen-Zeile. Die Namen der Buttons sind also durchnummeriert. Und die Enter-Möglichkeit soll bei jedem Textfeld, das hier aufgelistet ist, möglich sein. Und die ganze Tabelle steckt in einer <form>.
 
Gut, das ist doch schon mal was.

Beim Enter in diesen Feldern soll also diese Funktion aufgerufen werden.... das Formular aber nicht gesendet werden, korrekt?

Und bei dem Submit-Button, der in dem Code zu sehen ist, soll da auch nur die Funktion aufgerufen werden, oder soll auch das Formular gesendet werden.

Und in dem Rest des Formulars(der dort nicht zu sehen ist).... gibt es da weitere Formularelemente, mit denen dasselbe passieren soll?
 

Neue Beiträge

Zurück