jQuery.Autocomplete プラグインを変更して中国語の入力方法をサポートし、TAB キーと ENTER キーの失敗を回避してフォーム submit_jquery を発生させます。

WBOY
リリース: 2016-05-16 18:45:04
オリジナル
1317 人が閲覧しました

しかし、唯一残念なのは、中国語の入力方法がオンになっている場合、Firefox3.0 は自動的に中国語のピンインを照合しますが、私の IE6.0 ではそのような問題は発生しません。
原因分析:
オートコンプリート プラグインは、入力メソッドが開かれたときに、「keydown」イベントを通じてユーザー入力文字の自動一致をトリガーします (IE6 では jquery.autocomplete.js の 92 行を分析できます)。 , 入力された文字は「キーダウン」をトリガーしません。これは中国語入力が完了した後にのみトリガーされます。そのため、Firefox 3.0 では、入力方法がオンになっているかどうかに関係なく、中国語入力とラテン語入力に違いはありません。そうではなく、キーによって「keydown」イベントがトリガーされるため、中国語の入力が完了すると、入力したばかりの中国語のピンイン文字の一部が自動的に照合されます。 ------つまり、Firefox だけが問題を抱えているということですね。
解決策:
インターネットで見つかった最も一般的な方法は、jquery.autocomplete.js の 92 行目を変更し、「keydown」を「keyup」に置き換えることです。これは使用できますが、根本的な解決策ではありません。この変更後の Firefox では、入力された中国語をタイムリーに自動的に照合しますが、たとえば、入力がフォーム内の場合、元のプラグインのキャリッジ リターンやタブなどの重要なイベント メカニズムが破壊されます。 、入力に項目を入力すると、フォームを直接送信することになりますが、これは望んでいることではありません。
私のメソッドの原理は、元のプラグインがクエリをトリガーするイベントを追加することです。つまり、入力フィールド内の文字が変更されたときに、クエリが再クエリされます (内部の onChange 関数を呼び出します)。最もアクセスされるシステムは IE と Firefox であるため、これは主に Firefox 用です。 Firefox には oninput と呼ばれる入力変更イベントがあるため、元の jquery.autocomplete.js の 199 行目に次のコードを挿入するだけで済みます:

コードをコピー コードは次のとおりです:

.bind("input", function() {
// @hack:firefox での中国語入力のサポート
onChange(0, true);
});

挿入後のコードは次のようになります:
コードをコピー コードは次のとおりです。

...
...
jQueryinput.unbind();
jQuery(input.form) ).unbind(".autocomplete");
}).bind("input", function() {
// @hack:Firefox での中国語入力のサポート
onChange(0, true) ;
});
.
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート