そうですが、 オートコンプリートフィールドに入力する時間を検出し、1つのアイテムしか見つからない場合は自動選択
が素敵な作品$(".autoItem").each(function() {
var id = $(this).attr("id");
var itemNumber = id.replace('item', '');
$(this).autocomplete({
source: "jsonOut/products.aspx",
minLength: 2,
select: function (event, ui) {
$('#price' + itemNumber).val(ui.item.price);
$('#id' + itemNumber).val(ui.item.id);
}
});
});
自動補完するために、単純なjQueryのコールを考えると、私はいつものように起因する私のアプリケーションにそれを複雑にする上で今の私。
これは、店舗での販売を行うウェブフォーム用です。テキストボックスには、次の2つの方法で入力できます。
A)通常通り入力します。
B)バーコードスキャナーでコードをスキャンする。
ケースAの場合はすべて正常ですが、オートコンプリートはオートコンプリートと同じように機能します。ケースBでは
しかし、私は2つの問題があります:コードは後ろの私のデータベースのバーコードフィールドを検索するために知っているように
を私は、このエントリはスキャナからのものであることを検出できるようにする必要があります、アイテムタイトルではありません。明らかにブラウザはそのことを知らないので、私が考えることができる唯一の方法は、時間をかけて行うことです。スキャナは誰でも入力できるよりも速くフィールドにデータを入力します。
結果がバーコードでAutoCompleteによって生成されると、明らかに1つの結果しか返されないので、結果が1つしか返されない場合は、その結果を自動的に選択して、必要に応じて他のフィールドこのような
(スキャンした後、それはすぐにテキストフィールドに次のいずれかに上の移動をぼかすように、バーコードスキャナは、TABターミネータを持っている)
何かは可能?
誰かが孤立して問題を解決することができれば、それはクールです。私は点Bのためにhttps://github.com/scottgonzalez/jquery-ui-extensions/blob/master/autocomplete/jquery.ui.autocomplete.selectFirst.jsを見ましたが、それを動作させることができませんでした。
注:最悪が最悪の場合は、コードの後ろにisNumeri
cを使用してスキャンされたエントリを検出することができますが、スキャンするコードの一部は数値ではありません。製品SKUから生成されたバーコードは、数値ではない可能性があります。
なぜバーコード読み取り後にキャリッジリターン(Enterキーを押す)を送信するようにバーコードリーダーを設定しないのですか?それはすぐにフォームを提出し、AJAXオートコンプリートのものは無関係でなければなりません。 – Teddy
フォームは送信準備が整っていない可能性があります。顧客名などのその他のデータを入力する必要があります。これは必ずしも単一の商品販売ではありません。 jQueryは、最初の販売アイテムの詳細フィールドが完成した後、次のアイテムフィールドを作成します。 –
私の最初の印象は、ブラウザと入力フィールドに焦点が当てられているため、この[web page/app]はバーコードスキャンアプリの正しいアプローチではないと思います。 )。あなたのアプリはあなたの顧客に非常に固有でウェブサービスを構築しているので、ブラウザプラグインを作成してみることもできます。 –