Quelle est la différence entre onblur et OnChange attribut en HTML?

Quand l'un est-il appelé par rapport à l'autre? Y at-il une situation où onChange serait appelé mais onBlur ne serait pas appelé?

100
demandé sur Clemzd 2009-04-24 13:13:03

7 réponses

L'événement onBlur est déclenché lorsque vous vous êtes éloigné d'un objet sans avoir nécessairement changé sa valeur.

L'événement onChange n'est appelé que lorsque vous avez modifié la valeur du champ et qu'il perd le focus.

Vous pouvez jeter un oeil à l'introduction de quirksmode aux événements. C'est un endroit idéal pour obtenir des infos sur ce qui se passe dans votre navigateur lorsque vous interagissez avec elle. Son livre est trop bonne.

146
répondu Mark Dickinson 2016-11-03 15:49:20

Onblur se déclenche lorsqu'un champ perd le focus, tandis que onchange se déclenche lorsque la valeur de ce champ change. Cependant, ces événements ne se produiront pas toujours dans le même ordre.

Dans Firefox, la tabulation d'un champ modifié déclenchera onchange puis onblur, et il fera normalement la même chose dans IE. Cependant, si vous appuyez sur la touche Entrée au lieu de tab, dans Firefox, il se déclenchera onblur puis onchange, tandis que IE se déclenchera généralement dans l'ordre d'origine. Cependant, j'ai vu des cas où IE sera également flou tout d'abord, soyez donc prudent. Vous ne pouvez pas supposer que le onblur ou le onchange se produira avant l'autre.

17
répondu 2009-05-16 23:50:23

Un exemple pour rendre les choses concrètes. Si vous avez une sélection ainsi:

<select onchange="" onblur="">
  <option>....
</select>

Le onblur() est appelé lorsque vous la quittez. Le onchange() est appelé lorsque vous sélectionnez une option différente de la sélection-c'est-à-dire que vous modifiez ce qu'il est actuellement sélectionné.

9
répondu Brian Agnew 2009-04-24 09:19:50

Dans Firefox, onchange ne se déclenche que lorsque vous tabulez ou cliquez en dehors du champ de saisie. Il en va de même pour Onblur. La différence est que onblur se déclenchera si vous avez changé quoi que ce soit sur le terrain ou non. Il est possible que Entrée déclenche un ou les deux, mais vous ne le sauriez pas si vous désactivez L'entrée dans vos formulaires pour éviter les soumissions inattendues.

7
répondu Betty Mock 2012-10-24 12:43:09

OnBlur est lorsque vous ne vous concentrez plus sur le champ en question.

La propriété onblur renvoie le code du gestionnaire d'événements onBlur, le cas échéant, qui existe sur l'élément courant.

OnChange est lorsque la valeur du champ change.

4
répondu Ólafur Waage 2009-04-24 09:17:32

Je pense qu'il est important de noter ici que onBlur () se déclenche indépendamment.

C'est un thread utile mais la seule chose qu'il ne clarifie pas est que onBlur() se déclenchera à chaque fois.

OnChange () ne se déclenche que lorsque la valeur est modifiée.

4
répondu php-b-grader 2014-02-19 10:43:04

OnChange est quand quelque chose dans un champ change, par exemple, vous écrivez quelque chose dans une entrée de texte.

OnBlur est lorsque vous retirez le focus d'un champ, par exemple, vous écriviez dans une entrée de texte et vous avez cliqué dessus.

Donc, ils sont presque la même chose, mais pour onChange de se comporter comme onBlur fait quelque chose dans cette entrée doit changer.

3
répondu Sam152 2009-04-24 09:15:36