jqueryオートコンプリートプラグインを使用しており、ユーザーが入力した特定のキーに基づいてオートコンプリートを手動でトリガーしようとしています。オートコンプリートをオンザフライで入力にバインドしようとしています。これにより、ユーザーが特定のキーを入力して「検索対象のデータを入力しています」をトリガーすると、オートコンプリートが一致の検索を開始できるようになります。フィールドの、必ずしも最初にではありません。
keypressイベントを入力にバインドしています。ユーザーが「=」のような特定のキーを入力すると、配列内のすべての要素を表示したいと思います。次にユーザーが文字を入力すると、その文字の配列から一致するオプションがオートコンプリートされます。これは多かれ少なかれExcelで起こることを模倣しようとしています。ユーザーが等号キーを押して使用可能な関数を見ると、「=」キーは入力の最初の要素である必要はなく、毎回オートコンプリートする必要があります。 ="が押され、オプションが選択されるたびにそのacのバインドが解除されます。
var array1 = ['one','two','three'];
$.input1.bind('keypress', function(event) {
var keyCode;
if (event.keyCode > 0) {
keyCode = event.keyCode;
} else if (typeof(event.charCode) != "undefined") {
keyCode = event.charCode;
}
if (String.fromCharCode(keyCode) == '=') {
$.input1.unbind('keypress');
$.input1.autocomplete(array1);
$.input1.blur();
$.input1.focus();
e = $.Event('keydown');
e.which = keyCode;
$.input1.trigger(e);
}
});
オートコンプリートをトリガーしても、ユーザーがテキストの前に一致する可能性のあるものを入力した場合、前のテキストのために一致しません。したがって、ユーザーが「abd =」と入力すると、オートコンプリートは「=」だけでなく「abb=」をqパラメーターとして取得します。
どんな助けでも本当にありがたいです、私はとても立ち往生しています!!