私が最近取り組んだタッチスクリーンバージョンのプロジェクトでは、キーアップを使用して入力値を監視する際に、電話機のキーボードの他のキーを押すのは問題ありませんでしたが、削除キーを監視できませんでした。 . ネットで次の解決策を見つけました。
(原文: http://blog.csdn.net/kongjiea/article/details/40186121)
検索ボックスは、ユーザーが入力した値に基づいてリアルタイムで検索します。当然ピンイン状態でキーアップを考えましたのときは問題なかったのですが、
質問1: 中国語入力方式に切り替えたら問題が出て、その後キーアップイベントが操作不能になりました。オンラインで検索したところ、このアイデアを見つけました。
質問 2: WeChat パブリック プラットフォーム の開発中に、お客様から「入力ボックスにコンテンツを入力すると、入力ボックスの後ろにクリア ボタンが表示され、内容をクリアできるようにする」という要望がありました。 「キーアップ」イベントを使用するとき、中国語入力メソッドの一部のキーが押されます。キーアップ イベントは無効です。
方法 1: 主にフォーカス イベントを登録する検索ボックスで、しばらくしてから検索し、コードを投稿します
<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>
方法 2: input イベントと propertychange イベントを使用して問題を解決します、
私のテストは dom2 のバインディング メソッドでのみ使用できます など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>
しかし、次のような jq バインディングを使用できると言う人もいます。
$('#input').bind('input propertychange', function() { alert("....") });
またはネイティブ:
<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>
最後に注意すべきことは : oninput です。 onpropertychange と onpropertychange の両方のイベントには、IE9 には小さなバグがあります。つまり、右クリック メニューの切り取りコマンドと削除コマンドを使用してコンテンツを削除するときにイベントがトリガーされません。ただし、IE の他のバージョンでは正常です。現時点ではあまり良い解決策ではありません。ただし、入力ボックスの値の変更を監視するには、oninput と onpropertychange が最適な方法です。
以上がjqueryモバイルキーボードのキーアップの失敗に対する解決策を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。