Taste ermitteln

ceene

Erfahrenes Mitglied
Hallo ihr lieben

Erstmal ein frohes neues Jahr euch allen.
Ich habe da mal ne kleine Frage, aber bitte nicht lachen :D

Ich habe eine html-Seite mit einem Formular und mehreren Eingabefeldern, nun
möchte ich gerne das die "submit"-Methode auch ausgeführt wird, wenn man die Enter-Taste drückt egal in welchem
Feld man sich gerade befindet.

Wie mache ich das am gescheitesten?
Über javascript? Oder gibt es noch andere möglichkeiten?
Hätte auch gegen ein kleines Beispiel nichts einzuwenden :)
 
Ich habe eine html-Seite mit einem Formular und mehreren Eingabefeldern, nun
möchte ich gerne das die "submit"-Methode auch ausgeführt wird, wenn man die Enter-Taste drückt egal in welchem
Feld man sich gerade befindet.

Das tut es doch soweit ich weiß von Haus aus.
 
Wie rd4eva schrieb,

wenn deine Formularfelder in einem form tag gepackt sind passiert das automatisch. sind sie das nicht, weil du die Daten z.B. per Http Request mit Javascript abschickst kannst du das zb so lösen:
HTML:
<script>
function enter(e, object)
{
	if(window.event)
	{
		if(e.keyCode == 13)
		{
			do_something();
		}
	}
	else
	{
		if(e.which == 13)
		{
			do_something();
		}
	}
}

</script>

<input type="text" onkeydown="enter(event, this)" ....
 
vielen Dank

ut wunderbar :D


##EDIT##

jetzt ist leider ein weiteres Problem aufgetaucht

also ich nutze die javascript-lösung, aber leider wird nun die do_something() auch ausgeführt, wenn ich aus der vorschlagslist die aufgeht etwas auswähle mit enter.

wie kann ich das agfangen oder auch diese liste ausschalten?
 
leider wird nun die do_something() auch ausgeführt, wenn ich aus der vorschlagslist die aufgeht etwas auswähle mit enter.

wie kann ich das agfangen oder auch diese liste ausschalten?
Nimm einfach das onkeydown="enter(event, this)" aus dem Auswahllisten-Tag raus.

Übrigens kann man dort auch mit der Leertaste einen Eintrag auswählen.
 
wenn ich das raus nehme dann kann ich ja nicht mehr auf den tastendruck reagieren.

ich möchte ja das bei enter eine funktion ausgeführt wird, nur eben nicht wenn ich mit enter was aus der liste wähle.
das geht hier im forum beim einloggen auch, wenn ich einen namen aus der liste mit enter wähle dann passiert nichts und wenn ich dann nochmal enter drücke wird die anmeldung ausgelöst.

so würde ich das auch gerne machen...... aber wie geht das?
 
Der Parameter object den du an die Funktion übergibst ist das HTML Element selbst. Du könntest zb. dem Drop down eine id vergeben und zuerst überprüfen ob der Befehl vom Dropdown kommt und wenn ja überprüfen ob bei dem Dropdown etwas ausgewählt wurde. (zur Hilfe: mit object.options[object.selectedIndex].value könntest du den Wert des im Dropdown ausgewählten Wertes ermitteln)
HTML:
<script>
function enter(e, object)
{
	if(object.id == "id_des_dropdown")
	{
		if( funktion_die_ueberprueft_ob_etwas_ausgewaehlt_wurde_und_true_oder_false_zurueckgibt(object) == false )
		{
			return;
		}
	}
	if(window.event)
	{
		if(e.keyCode == 13)
		{
			do_something();
		}
	}
	else
	{
		if(e.which == 13)
		{
			do_something();
		}
	}
}

</script>
 
Zuletzt bearbeitet:
Hi,

du könntest auch den onchange-Event zur Hilfe nehmen. Dort setzt du ein Flag, wenn eine Änderung stattgefunden hat. Wird die enter-Routine durchlaufen und das Flag ist gesetzt, wird das Flag zurückgesetzt und die Funktion verlassen.
Code:
function enter(e, object){
  if(object.changed){
    object.changed = false;
    return;
  }

  if(window.event){
    if(e.keyCode == 13){
      alert('Enter');
    }
  }else{
    if(e.which == 13){
      do_something();
    }
  }
}

Der zugehörige HTML-Bereich:
Code:
<select onkeyup="enter(event, this);" onchange="this.changed=true">
  <option value="1">eins</option>
  <option value="2">zwei</option>
  <option value="3">drei</option>
  <option value="4">vier</option>
</select>

Ciao
Quaese
 
Das mit dem changed klappt super

vielen dank für die schnelle hilfe :D
 
Zuletzt bearbeitet:
geht doch nicht so super

wenn ich in das namensfeld z.B. ein "S" eingebe und dann einen eintrag auwähle der vorgeschlagen wird, dann wird die Funktion enter nicht abgebrochen.

ich nutze aber auch keine groupbox habe nur ein einfaches <input type="text"/> Feld.
 
Zuletzt bearbeitet:
Zurück