2016-06-09 6 views
0

<input> Felder haben ein onblur Ereignis, das Sie hören können, um festzustellen, wenn es nicht mehr im Fokus ist. Woher weiß ich, ob der Benutzer einfach Tab gedrückt hat und zum nächsten <input> gegangen ist, anstatt ganz außerhalb des Formulars zu klicken?Wie höre ich auf das Blur-Ereignis im gesamten Formular?

Für den Kontext, ich versuche, Validierung & auslösen, wenn der Benutzer aus dem Formular bewegt, aber ich will nicht versuchen, es zu tun, bevor sie eine Chance hatten, die ganze Sache auszufüllen (einige Felder hängen von anderen ab).

In meinem Beispiel verwende ich eigentlich contenteditable<td> s, aber sie haben immer noch die onblur Ereignis, so suche ich es auf dem übergeordneten <tr> zu tun.

+0

Put Klick/Fokus Ereignis Element, das außerhalb des Formulars ist – Justinas

+0

Sind Sie öffnen ein Framework wie jQuery oder zepto zu benutzen? –

+0

@ PerHornshøj-Schierbeck sicher - ich werde wahrscheinlich am Ende es in Vanille JS übersetzen, aber eine jQuery Antwort wäre genauso gültig –

Antwort

0

Verwenden Sie diese Klasse => 'Formularelement' für jedes Formularelement.

$('.form-element').blur(function(){ 
    // your action 
}); 
+0

Danke, aber würde das nicht jedes Mal ausgelöst, wenn ein Benutzer zwischen Elementen Tabs eingibt? –

+0

Ja, würde es - aber Sie könnten dies mit mehr Tests gegen die Kriterien, die Sie für das Formular korrekt ausgefüllt haben, paaren. –

Verwandte Themen