Maison > interface Web > js tutoriel > La soumission du plug-in de validation jQuery submitHandler provoque une boucle infinie solution_jquery

La soumission du plug-in de validation jQuery submitHandler provoque une boucle infinie solution_jquery

WBOY
Libérer: 2016-05-16 15:19:05
original
1502 Les gens l'ont consulté

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写法
});

Copier après la connexion

2. jquery valide le programme de boucle infinie

$("#product_form").validate({
  focusInvalid:false,
  submitHandler: function(form){
    $('.submit').submit();
  }
});

Copier après la connexion

Écriture correcte,

$("#product_form").validate({
  focusInvalid:false,
  submitHandler: function(form){
    form.submit();
  }
});

Copier après la connexion

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.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal