2017-10-09 19 views
-1

Ich habe eine ASP.NET MVC-Anwendung und ich möchte das erste Feld in Fehler zu konzentrieren. Wenn beim Senden das letzte Feld einen Fehler aufweist und der Benutzer versucht, das Formular zu senden, wird der Fokus auf das letzte fehlerhafte Feld und nicht auf das erste Feld gesetzt. Ich probierte mehrere einschließlich der folgenden:Wie fokussiere ich die erste Eingabe?

Gibt es eine Lösung, wo der Benutzer immer auf das erste Feld irrtümlich gehen kann.

+2

Du Schleife durch jedes Element mit dem 'Input-Validierung-error' Klasse und darauf Fokus aufrufen. Was haben Sie erwartet, würde passieren? Warum sollten Sie alle Elemente durchlaufen, wenn Sie nur auf eines der Elemente fokussieren möchten? Denken Sie in Ihrem Code nach, überlegen Sie, ob es Sinn macht. – mason

Antwort

2

Keine Notwendigkeit, jedes hier zu verwenden und Schleife über alle Fehler. Sie können einstellen, nur den Fokus auf first Element mit Fehlerklasse input-validation-error wie:

$('.input-validation-error:first').focus(); 
+0

Vielen Dank für den Vorschlag. Diese Lösung funktioniert nicht, wenn der Fokus immer noch auf dem letzten Fehler liegt. Der Fokus geht immer noch auf den letzten Fehler, wenn der letzte Fehler im Fokus ist. Ich versuche, beim Click-Ereignis zum ersten Fehler im Formular zu gelangen. – Vikram

0

@Palash eine gute Antwort hat, aber ich werde erklären, warum Ihr Code nicht so funktioniert Sie es verstehen.

Sie müssen die Schleife verlassen, nachdem der Fokus auf das erste Element gesetzt wird wie unter falschen Rückkehr:

$(".input-validation-error").each(function() { 
    $(this).focus(); 
    return false; 
}); 

Wenn Sie false zurück, die Sie anweist jQuery Verarbeitung der Rest der Elemente zu stoppen. Andernfalls wird es weiterlaufen und Sie werden den letzten Punkt fokussieren.

0

Sie können Methode verwenden.

eq Verfahren reduziert die Gruppe angepaßter Elemente zum einen am angegebenen Index.

$('.input-validation-error').eq(0).focus(); 
Verwandte Themen