Maison interface Web js tutoriel js change,propertychange,input事件小议_javascript技巧

js change,propertychange,input事件小议_javascript技巧

May 16, 2016 pm 05:58 PM
change input

https://github.com/mootools/mootools-core/issues/2170

这个问题来自IE(LTE8)中对checkbox和radio change事件的实现问题,在IE(LTE8)中测试下来,当你点击一个checkbox或者radio,它的change事件是不会立即触发,除非你让它失去焦点,而在其他标准浏览器中(包括IE9),是点击后立即触发change事件的,这的确是个蛋疼的问题,说到解决方法,倒也比较容易,用IE(LTE8)中元素特有的propertychange事件来处理(IE9已经没这玩意儿了),就能避免上述问题,如:

复制代码 代码如下:

checkEl.attachEvent('onpropertychange', function() {
console.log('hey man, I am changed');
});

但是这样就认为解决了,是不充分的,因为像checkEl.setAttribute('data-value', 'god')这样的操作也会触发其propertychange事件,所以我们需要用其event.propertyName来判断下,如:

复制代码 代码如下:

checkEl.attachEvent('onpropertychange', function() {
if(window.event.propertyName == 'checked')
console.log('blah blah blah...');
});

这样算是可以了。由此展开我又测试了下select,其change事件的表现在不同浏览器中一致,没有出现非要先失去焦点的情况。我又测试了下input[type="text"],它的change事件是我们所熟悉的,要失去焦点才会触发,那么当我们想让它一输入东西就立即触发呢,参考之前的例子在IE(LTE8)中,我们可以用propertychange来实现,只不过propertyName的条件变成‘value'而已。在其他标准浏览器中(包括IE9),我们可以用HTML5中的一个标准事件input, 如:

复制代码 代码如下:

inputEl.addEventListener('input', function(event) {
console.log('input event fired');
}, false);

这样我们的每一次输入都会触发此事件,有人会说为什么不用keyup来监听一下, 这里有篇文章(原文链接)对此问题进行了阐述,感兴趣的也可以读读。
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment implémenter le champ caché d'entrée Laravel Comment implémenter le champ caché d'entrée Laravel Dec 12, 2022 am 10:07 AM

Comment implémenter le champ caché d'entrée Laravel : 1. Recherchez et ouvrez le fichier de modèle Blade ; 2. Utilisez la méthode method_field dans le modèle Blade pour créer un champ masqué. La syntaxe de création est "{{ method_field('DELETE') }}. ".

Comment encapsuler les composants d'entrée et les données de formulaire unifié dans vue3 Comment encapsuler les composants d'entrée et les données de formulaire unifié dans vue3 May 12, 2023 pm 03:58 PM

Préparation Utilisez vuecreateexample pour créer un projet. Les paramètres sont à peu près les suivants : utiliser l'entrée native est principalement la valeur et le changement. Les données doivent être synchronisées lors du changement. App.tsx est le suivant : import{ref}from'vue';exportdefault{setup(){//username est la donnée constusername=ref('Zhang San');//Lorsque la zone de saisie change, synchronisez les données constonInput =;retour( )=>({

Que faire s'il n'y a pas de curseur lorsque vous cliquez sur la zone de saisie Que faire s'il n'y a pas de curseur lorsque vous cliquez sur la zone de saisie Nov 24, 2023 am 09:44 AM

Solutions pour cliquer sur la zone de saisie sans curseur : 1. Confirmez le focus de la zone de saisie ; 2. Effacez le cache du navigateur 3. Mettez à jour le navigateur 4. Utilisez JavaScript 5. Vérifiez le périphérique matériel ; propriétés de la boîte ; 7. Débogage du code JavaScript ; 8. Vérifiez les autres éléments de la page ;

Comment utiliser l'événement de retour chariot de la zone de saisie et la fonction de vérification dans le document Vue Comment utiliser l'événement de retour chariot de la zone de saisie et la fonction de vérification dans le document Vue Jun 20, 2023 am 09:13 AM

Vue est un framework frontal JavaScript populaire avec en son cœur une liaison de données réactive et un système de composants. Dans les applications Vue, la zone de saisie est l'un des éléments d'interface utilisateur les plus couramment utilisés. Lorsque l'utilisateur saisit du texte, nous espérons écouter l'événement de retour chariot et valider la saisie avant de la soumettre. Cet article présentera l'utilisation de la fonction de saisie d'événement et de vérification dans la zone de saisie dans le document Vue. 1. L'événement de retour chariot de la zone de saisie dans Vue La surveillance de l'événement de retour chariot de la zone de saisie dans Vue est très simple.

Explication détaillée des événements de liaison de zone de saisie dans les documents Vue Explication détaillée des événements de liaison de zone de saisie dans les documents Vue Jun 21, 2023 am 08:12 AM

Vue.js est un framework JavaScript léger, facile à utiliser, efficace et flexible. Il s'agit actuellement de l'un des frameworks front-end les plus populaires. Dans Vue.js, les événements de liaison de zone de saisie sont une exigence très courante. Cet article présentera en détail les événements de liaison de zone de saisie dans le document Vue. 1. Concepts de base Dans Vue.js, l'événement de liaison de la zone de saisie fait référence à la liaison de la valeur de la zone de saisie à l'objet de données de l'instance Vue, réalisant ainsi une liaison bidirectionnelle de l'entrée et de la réponse. Dans Vue.j

Obtenez les commentaires de l'utilisateur à l'aide de la fonction input() de Python Obtenez les commentaires de l'utilisateur à l'aide de la fonction input() de Python Aug 22, 2023 am 11:21 AM

Titre : Utilisation de la fonction input() de Python pour obtenir les entrées de l'utilisateur Lors de l'écriture d'un programme, vous avez souvent besoin d'obtenir les entrées de l'utilisateur. Python fournit une fonction intégrée input() qui peut être utilisée pour obtenir et recevoir des entrées utilisateur. Cet article présentera comment utiliser la fonction input() et quelques scénarios d'application courants. La fonction input() est très simple à utiliser. Elle accepte un message d'invite facultatif comme paramètre et attend la saisie de l'utilisateur. Après les entrées de l'utilisateur, la fonction input() renverra un

Comment pouvons-nous ajouter un champ de saisie sur une seule ligne en HTML ? Comment pouvons-nous ajouter un champ de saisie sur une seule ligne en HTML ? Aug 20, 2023 pm 05:45 PM

Utilisez la balise <isindex> pour ajouter un champ de saisie sur une seule ligne. La balise HTML<isindex> est utilisée pour interroger des documents via des champs de texte. Cette balise peut être utilisée n’importe où, mais il est préférable de la placer dans la balise head. REMARQUE : Il s’agit d’une balise obsolète et ne doit pas être utilisée. Voici la liste des propriétés - Valeur de la propriété Description Chaîne d'invite Champ de texte Étiquette ActionURL Utilisez un exemple lorsque vous devez envoyer une requête à une URL différente Essayez le code suivant - <!Doctypehtml><html

Razer DeathAdder V3 HyperSpeed : la nouvelle souris offre une haute résolution et un taux d'interrogation sans fil jusqu'à 8 000 Hz Razer DeathAdder V3 HyperSpeed : la nouvelle souris offre une haute résolution et un taux d'interrogation sans fil jusqu'à 8 000 Hz Jun 22, 2024 am 12:20 AM

Razer propose une large gamme d'accessoires de jeu. Le constructeur élargit aujourd'hui cette gamme avec la Razer DeathAdder V3 HyperSpeed. Il s'agit d'une souris légère et ergonomique qui peut être utilisée sans fil, offrant une grande liberté et un minimum d'encombrement.

See all articles