L'exemple de cet article décrit la solution à la boucle infinie provoquée par la soumission du plug-in de validation jQuery submitHandler. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Il n'y a pas de différence fonctionnelle entre form.submit(); pour les objets dom et $('').submit(); Mais si vous utilisez le plug-in jquery validate, il y aura une grande différence entre les deux lors de la soumission. Lorsque $('').submit(); est soumis, jquery validate effectuera une vérification. Si $('').submit(); est écrit dans submitHandler, cela provoquera une boucle infinie, mais form.submit(); ne le fera pas.
Ce problème est mineur. Si vous n’y prêtez pas attention ou si vous avez l’habitude d’écrire, il est facile de faire des erreurs et lorsque vous faites des erreurs, il est difficile de les trouver. Il m'a fallu près de deux heures pour en trouver la raison.
1. Parlons brièvement des objets dom et des objets jquery
objet dom, vous devez utiliser la méthode d'écriture js pour faire fonctionner les balises dans la page. Quant aux objets jquery, vous devez utiliser la syntaxe jquery pour fonctionner.
Convertir un objet dom en objet jquery est également très simple, ajoutez simplement $(), et vous pourrez ensuite utiliser la syntaxe jquery pour faire fonctionner les balises sur la page. Je pense que c'est ce que tout le monde utilise le plus. Jetez un œil à un exemple.
$('input[name^="hour"]').each(function(index){ this.value=index; //this是dom对像,js写法 }); $('input[name^="hour"]').each(function(index){ $(this).val(index); //$(this)是jquery对像,jquery写法 });
2. jquery valide le programme de boucle infinie
$("#product_form").validate({ focusInvalid:false, submitHandler: function(form){ $('.submit').submit(); } });
Écriture correcte,
$("#product_form").validate({ focusInvalid:false, submitHandler: function(form){ form.submit(); } });
Lorsqu'une boucle infinie se produit, le navigateur continuera à se charger jusqu'à ce qu'il se bloque. À ce moment, vous pouvez ajouter une alerte et vous saurez que validate vérifie constamment en boucle. Personnellement, je pense que même s’il s’agit d’un petit problème, il est difficile d’y penser.
Les lecteurs intéressés par plus de contenu lié aux plug-ins jQuery peuvent consulter le sujet spécial de ce site : " Résumé des plug-ins jQuery courants et de leur utilisation"
J'espère que cet article sera utile à tous ceux qui programment jQuery.