Comment se concentrer première entrée?

J’ai une application ASP.NET MVC et je souhaite concentrer le premier champ en erreur. Lors de l’envoi, si le dernier champ contient une erreur et que l’utilisateur essaie de soumettre le formulaire, le focus se porte sur le dernier champ erroné au lieu du premier. J’ai essayé plusieurs dont le ci-dessous:

$().ready(function() { $("#Form").submit(function() { $('.input-validation-error').focus(); $(".input-validation-error").each(function() { $(this).focus(); }); }); }); 

Existe-t-il une solution permettant à l’utilisateur de toujours accéder au premier champ par erreur?

Pas besoin d’utiliser chacun ici et boucle sur toutes les erreurs. Vous pouvez simplement définir le focus sur le first élément avec la classe d’erreur input-validation-error comme:

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

@Palash a une bonne réponse mais j’expliquerai pourquoi votre code ne fonctionne pas afin que vous le compreniez.

Vous devez quitter la boucle une fois que le focus est défini sur le premier élément en renvoyant false comme ci-dessous:

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

Lorsque vous renvoyez false, vous indiquez à jQuery de ne plus traiter le rest des éléments. Sinon, la boucle continue et le dernier élément est concentré.

Vous pouvez utiliser la méthode eq .

eq méthode eq réduit l’ensemble des éléments correspondants à celui de l’index spécifié.

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