0 votes

La validation et le cache d'entrée de Firefox

Lorsque vous actualisez/rechargez une page ou utilisez le bouton "retour", Firefox a la gentillesse de repeupler vos entrées avec ce qui a été saisi avant que vous ne naviguiez ailleurs.

Bien qu'il s'agisse d'une fonctionnalité intéressante, elle ne déclenche pas ma validation jquery et l'avertissement de modifications non sauvegardées que j'ajoute à mes pages.

Existe-t-il un moyen de désactiver cette fonctionnalité dans Firefox (sans renommer chaque contrôle à chaque fois) ou de capturer les événements de Firefox ?

1voto

Nick Craver Points 313913

Après votre .validate() appeler document.ready appelle également .valid() une fois pour déclencher la validation également, comme ceci :

$(function() {
  $('#myForm').validate({ /* options here */ });
  $('#myForm').valid();
});

0voto

Boris Guéry Points 23606

Vous pouvez utiliser le trigger() pour déclencher tout événement (personnalisé ou non).

Je vous suggère de valider l'événement :

$(document).ready(function()
    {
        $('#yourform').trigger('validate');
    }
);

Si votre plugin de validation utilise une fonction pour valider, il suffit de faire :

$(document).ready(function()
    {
          validate($('#yourform'));
    }
);

qui sera déclenché lorsque votre document sera prêt.

Utilisez éventuellement setTimeout pour éviter le temps de chargement pendant que le navigateur charge les valeurs d'entrée mises en cache.

0voto

Nicholas Wilson Points 4464

Puis-je vous suggérer d'ajouter une fonction retardée pour valider et vérifier le contenu du formulaire quelques secondes après le chargement de la page ? Ce serait probablement le moyen le plus sûr de prendre en compte tous les navigateurs, dont certains n'insèrent les données de formulaire enregistrées qu'une fois que toute la page a fini de se charger.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X