jQuery keyup und 'Enter' in Safari

8

Ich benutze jQuery und möchte es dem Benutzer ermöglichen, nach Eingabe von Daten in ein Suchfeld zu gelangen, um die Suche zu starten.

Ich verwende den folgenden Code:

%Vor%

Es funktioniert perfekt in Firefox und IE, aber überhaupt nicht in Safari. Was passiert, ist, dass das Formular eingereicht wird, wenn ich in Safari auf Enter klicke und das ist nicht was ich will.

Hinzufügen von onsubmit="return false;" Das Formular funktioniert, ist aber keine Option, da sich das Formular-Tag auf einer Masterpage einer asp.net-Seite befindet und das Formular auf anderen Seiten eingereicht werden muss.

Gibt es eine Möglichkeit, diese Funktion auch in Safari zu verwenden?

BEARBEITEN: Ich habe auch versucht, nur eine Warnung anstelle der Funktion doSearch () anzuzeigen. Die Warnung wird angezeigt, aber danach wird das Formular gesendet.

    
Martin 03.10.2010, 14:51
quelle

5 Antworten

4

Browser können variieren, welches Ereignis eine Übermittlung auslöst. In diesem Fall kann Safari das Keydown-Ereignis übermitteln.
Sie können nach dem Submit-Ereignis suchen, ohne das Markup zu ändern und es abzubrechen:

%Vor%

Sie können dann auf das Keyup-Ereignis warten und es so behandeln, wie Sie es jetzt tun.

    
meouw 03.10.2010, 15:35
quelle
3

Versuchen Sie Folgendes:

%Vor%     
Sarfraz 03.10.2010 14:53
quelle
1

Fügen Sie prevent default

hinzu %Vor%     
Praveen Prasad 03.10.2010 15:25
quelle
0

Ich benutze "keydown", weil "keyup" nicht für mich funktioniert hat. Ich brauchte dazu auch Eingabefelder, die ich mit AJAX, also dem "Live", hinzufüge.

Sie müssen einen "Änderungs" -Handler an das Feld binden. Diese Version verlässt das Feld ("Unschärfe"), löst dann eine Änderung für das Feld aus und löst dann die Änderung aus. Ohne die Unschärfe wird die Änderung zweimal ausgelöst!

%Vor%     
user472059 11.10.2010 07:58
quelle
0

Ich benutze "keydown", weil "keyup" nicht für mich funktioniert hat. Ich brauchte dazu auch Eingabefelder, die ich mit AJAX, also dem "Live", hinzufüge.

Sie müssen einen "Änderungs" -Handler an das Feld binden. Diese Version verlässt das Feld ("Unschärfe"), löst dann eine Änderung für das Feld aus und löst dann die Änderung aus. Ohne die Unschärfe wird die Änderung zweimal ausgelöst!

%Vor%     
user472059 11.10.2010 08:21
quelle

Tags und Links