2012-06-22 9 views
5

Ich habe eine grundlegende form mit einer search input und eine innerhalb. Wenn der Fokus in input stattfindet, wird die Tastatur wie erwartet angezeigt. Wenn ich die button drücke, tritt das Formularübermittlungsereignis auf, in dem ich event.preventDefault() rufe und stattdessen einen Ajaxanruf mache. Wenn ich jedoch die Taste Suche auf der Tastatur drücke, verbirgt sich die Tastatur nur und es tritt kein Submit-Ereignis auf.Mobil Safari Tastatur Formular Einreichung

Warum sendet das Formular nicht, wenn ich die Suche auf der Tastatur drücke? Wie kann ich dieses Ereignis über die Tastatursuchschaltfläche auslösen?

Danke.

+0

Sie Code schreiben können? Sie sollten nicht auf ein Ereignis warten müssen. –

+0

Eigentlich müssen Sie auf ein Ereignis hören, wenn Sie 'ajax' verwenden möchten – Trevor

+0

Oh Gotcha, verwende ich normalerweise das Formular senden, um meine Daten über Ajax zu übermitteln. Sie können die Formulardaten in json serialisieren und das direkt senden. Viel einfacher, als jeden Eingang direkt an ein Modell anschließen zu müssen. –

Antwort

5

Die Tastatursuchschaltfläche muss an ein Tastendruckereignis gebunden sein und hat die keycode von 13.

Grundsätzlich zu keypress Ereignisse hören und alle Anrufe zurückzukehren, außer für e.which === 13

$('input').on('keypress', function (e) { 
    if (e.which !== 13) { 
     return; 
    } 

    // ajax code 
} 
Verwandte Themen