Détection de changement de valeur d'entrée Jquery

Comment détecter que la valeur d'entrée a-t-elle été modifiée ou non sur un événement flou?

Par exemple, chaque champ de saisie a une valeur par défaut (peut être vide), après que l'entrée de courant soit désactivée, il est important de déterminer si la valeur a été modifiée.

Comment faire cela?

Comparez la valeur et la valeur par défaut

<input onblur="if(this.value!=this.defaultValue){alert('changed');}"> 

Abonnez-vous pour .change() au lieu de .blur() . De cette façon, vous saurez que la valeur a changé.

Vous pouvez passer à l'événement .change () au lieu de .blur (), mais je pense que cela est fondamentalement erroné de diverses façons. Je suggère d'utiliser le plugin Changed jQuery de Jonathan Azoff ( http://www.azoffdesign.com/changed ). Cela peut être en excès dans ce cas, donc …

Il existe plusieurs façons de le faire, dont l'une consiste à stocker l'ancienne valeur comme un attribut de données pour une entrée, puis comparer la valeur de l'entrée à l'ancienne valeur au flou. Si les deux valeurs sont différentes, elles ont changé.

Exemple:

  <input type="text" name="firstname" data-old="Jack"> 

Vous pouvez enregistrer cette valeur à l'aide de votre type de type back-end, ou même le faire sur le chargement de la page. Ensuite, sur flou, vous pouvez avoir un événement qui fonctionne comme ceci:

  $('input').blur(function() { if ($(this).data('old') != $(this).val()) // It changed! Do something! } 

Si l'ancienne valeur était "Jack", puis vous avez changé le nom pour "Bob" et déclenché l'événement flou, cela verrait que "Jack" n'est pas égal à "Bob" et que vous effectuez votre action.

J'espère que cela pourra aider. Bonne chance.

Directement à partir de la documentation jQuery

 $("input[type='text']").change( function() { // check input ($(this).val()) for validity here }); 

Vous pouvez enregistrer la valeur de la saisie sur la mise au point et vérifier la valeur de la saisie sur le flou.