IE8 - Enter-Taste nicht Unterwerfen mein Suchfeld
Hey Leute, ich habe ein Suchfeld, ist nicht die Vorlage, wenn Sie die enter-Taste ist der hit, das Problem ist nur das geschehen auf IE8, jeder andere browser funktioniert einwandfrei (sogar IE6). Bitte Jungs, ich brauche eine hand mit der seinen, finden Sie unten den code, den ich dafür habe.
<div class="box-search">
<input type="text" class="text-box" id="text-search" />
<label class="overlabel" for="text-search">Enter keyword(s)</label>
<input type="submit" value="" name="btn-submit" class="btn-go" onclick="javascript:goSearch();return false;" />
</div>
Ok, ich vergaß zu erwähnen, das Formular ist in einer ASP-kodierte Seite, das ist, warum es nicht verpackt in das form-element.
- Sie können gehen Sie voran und entfernen Sie
javascript:
von der onclick-handler, es ist völlig nutzlos.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie einige
<form></form>
- tags um die textbox und button. Wie soAndere Weg wäre, um das keydown-event der textbox und überprüfen, ob es die enter-Taste.
Hoffe, das hilft.
return false
); und während Sie "enter" sendet Formular.submit() im IE, es sendet btn-submit.klicken Sie auf() in einigen älteren Browsern (Opera 9, wenn ich mich Recht erinnere)Habe ich herausgefunden, dass es ein bug in IE8 und manchmal ein Formular nicht Absenden auf Eingabe-Taste.
Der beste Weg wäre, um ein Ereignis zu behandeln enter-Taste gedrückt wird.
In jQuery tun würde:
In JavaScript wäre es:
Und ändern Html:
Ignorieren Sie die form-tags, wenn Sie bereits ein Asp.net form.
Einen anderen Weg, statt die
onclick
auf den Absenden-button, wäre dies zu tun.Edit: Hinzugefügt, action-und method-Attribute. Das action-Attribut ist erforderlich für die Validierung.
return false
auf Erfolg scheint ein wenig nach hinten. Dann würde ich eherreturn !goSearch(this)
undreturn true
auf Erfolg.Wäre es nichts mit der Tatsache zu tun, haben Sie eine
onclick
Veranstaltung mit einem Funktionsaufruf zuGoSearch
und einreturn false
befestigt, um einen "submit" input type?Können Sie vorbei an den Inhalt der goSearch () - Funktion?
Was passiert, wenn Sie entfernen die "return false;" aus der event-handler für das submit?
Wenn ein Benutzer trifft, GEBEN Sie in einem text-input-Feld, IE verhält sich so, als wenn die submit-Schaltfläche verwendet worden, aber das "false" verhindert, dass das event-bubbling.
EDIT: mit der neuen ASP-Informationen.
Sehen: http://mikepope.com/blog/AddComment.aspx?blogid=309 Er hat eine Erklärung, wie es funktioniert, so dass keine details hier, außer zu sagen, dass alle Sie tun müssen ist, fügen Sie Folgendes zu Ihrer page_load-Ereignis:
Alte ticket, aber ich möchte Glockenspiel: IE8 hat die folgenden eigenartige Sache: die Enter-Taste wird das Formular abschicken, aber jeder
nicht gesendet werden, in der POST.
IE9 ändert sich das Verhalten und sendet den Wert. Chrome hat immer an den Wert, wie weit, wie meine tests gezeigt haben.
Es gibt eine Tonne von "Enter Vorlage nicht in IE8" Beschwerden gibt, und ich glaube, viele von Ihnen können sein trugen zu diesem Verhalten. Ich hoffe, dies hilft einigen von Ihnen.