過去2日間で、テキストボックス入力のリアルタイム監視が必要な関数を作成しました。また、中国の入力方法でOnKeyupイベントをトリガーできないという吐き気の問題に遭遇しました。
特定の症状は次のとおりです。
入力キーアップイベントをリッスンするとき、英語の入力方法は、キーアップイベントをリアルタイムでテキストボックス値の変更を検出できます。ただし、入力メソッドが中国語になると、入力キーアップイベントは正常にトリガーされません。これが以前の執筆方法です。
<html> <head> <script type = "text/javascript" src = "// www.vevb.com/static/js/jquery-1.4.2.min.js"> </script> </head> <body> <body> <p>キーアップイベントを使用してテキストボックスコンテンツを検出します:</p> <p> <poting = " AutoComplete = "Off"/> <Span id = "keyup_s"> </span> <script = "text/javascript"> $( '#keyup_i')。
ご覧のとおり、この執筆は、中国人がキーアップイベントをトリガーできない問題に遭遇します。だから私は解決策を探しました。 Baiduの検索バープロンプトが問題ないように思われたことを思い出したので、BaiduのJSを見始めました。 BaiduのJSは醜いです...この方法は文字として名前が付けられており、最終的には、おそらくタイムアウトをタイマーとして使用して入力ボックスの変更を定期的に監視していることがわかりました。この方法にあまり満足していません。それで、私はより良いソリューションを探し続けたので、OnInputとOnpropertychangeの2つのイベントを見つけました。
OnInputはFirefoxで利用できますが、OnpropertychangeはIEで使用できます。 2つの方法にはいくつかの違いがあります。
OnInputはプロパティ値の変更のみを検出できますが、Onpropertychangeは値を含むすべてのプロパティの変更を検出できます。それで、それはこれに変わり始めました。
<html> <head> <スクリプトタイプ= "Text/Javascript" src = "// www.vevb.com/static/js/jquery-1.4.2.2.min.js"> </script> </head> <body> <body> <body> <p> OnInputおよびOnpropertychangeイベントを使用するためにテキストボックスを検出する:< 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'; } $( '#incultorp_i')。bind(bind_name、function(){$( '#inputorp_s')。text($(this).val());})</script> </p> </body> </html>問題はそのように解決されました。