Dans un projet de version à écran tactile sur lequel j'ai récemment travaillé, j'ai rencontré le problème de surveillance de la valeur d'entrée en utilisant keyup, ce n'était aucun problème d'appuyer sur les autres touches du clavier. téléphone, mais la clé de suppression n'a pas pu être surveillée. Recherchez la solution ci-dessous en ligne.
(Texte original de : http://blog.csdn.net/kongjiea/article/details/40186121)
Basé sur un champ de recherche sur l'utilisateur La valeur d'entrée est récupérée en temps réel. Keyup vient naturellement à l'esprit au début. Dans l'état Pinyin , il n'y a pas de problème
Question 1 : <.> Passer à la méthode de saisie chinoise , un problème est survenu, l'événement keyup ne fonctionnait pas correctement, puis j'ai cherché en ligne et j'ai trouvé l'idée,
Question 2 : Lorsque la plateforme publique WeChat a été développée , le client a demandé « lors de la saisie du contenu dans la zone de saisie, un bouton d'effacement sera affiché derrière la zone de saisie pour effacer le contenu dans la zone de saisie ". Lors de l'utilisation de l'événement "keyup", certains événements keyup se produiront sous la méthode de saisie chinoise. Invalide,
Méthode 1 : enregistrez principalement l'événement focus pour le champ de recherche et récupérez-le à intervalles réguliers, publiez le code
<script language="javascript" type="text/javascript" src="jquery.js"></script> <script> $(function () { $('#wd').bind('focus',filter_time); }) var str = ''; var now = '' filter_time = function(){ var time = setInterval(filter_staff_from_exist, 100); $(this).bind('blur',function(){ clearInterval(time); }); }; filter_staff_from_exist = function(){ now = $.trim($('#wd').val()); if (now != '' && now != str) { console.log(now); } str = now; } </script>
Je ne peux utiliser que la méthode de liaison dom2 pour tester Tel que document.getElementById('box').addEventListener('input',function(){.. .dosomething...},false);
html> <head> <script type="text/javascript" src="http://www.zlovezl.cn/static/js/jquery-1.4.2.min.js"></script> </head> <body> <p> 使用oninput以及onpropertychange事件检测文本框内容: </p> <p> <input type="text" name="inputorp_i" id="inputorp_i" autocomplete="off"/> <span id="inputorp_s"></span> <script type="text/javascript"> //先判断浏览器是不是万恶的IE,没办法,写的东西也有IE使用者 var bind_name = 'input'; if (navigator.userAgent.indexOf("MSIE") != -1){ bind_name = 'propertychange'; } $('#inputorp_i').bind(bind_name, function(){ $('#inputorp_s').text($(this).val()); }) </script> </p> </body> </html>
$('#input').bind('input propertychange', function() { alert("....") });
ou natif :
<script type="text/javascript"> // Firefox, Google Chrome, Opera, Safari, Internet Explorer from version 9 function OnInput (event) { alert ("The new content: " + event.target.value); } // Internet Explorer function OnPropChanged (event) { if (event.propertyName.toLowerCase () == "value") { alert ("The new content: " + event.srcElement.value); } } </script> <body> <input type="text" oninput="OnInput (event)" onpropertychange="OnPropChanged (event)" value="Text field" /> </body>
La dernière chose à noter est : oninput Les deux événements, onpropertychange et onpropertychange, ont un petit bug dans IE9, c'est-à-dire qu'ils ne seront pas déclenchés lors de la suppression de contenu via les commandes couper et supprimer du menu contextuel. Cependant, les autres versions d'IE sont normales, et c'est le cas. pas très bonne solution pour le moment. Cependant, oninput & onpropertychange restent le meilleur moyen de surveiller les changements de valeur de la zone de saisie.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!