1

私は、jQueryUIのオートコンプリートに基づいて小さなjQueryプラグインを作成しようとしています。これは、さまざまなオートコンプリートフィールドがあり、それらを別の方法で処理したいためです。

プラグインの他のすべての部分は正常に機能していますが、理解できないことが1つあります。それにもかかわらず、onSelect関数はこれを明確に定義します。

box.val(ui.item.nazev); // item name
boxID.val(ui.item.value);

これは、実行後にこれらの要素の値を一覧表示することで確認できます。ユーザーの場合、ボックス要素はどういうわけかui.item.valueを示しています。

私は考えられるあらゆる可能性を試しましたが、どれもうまくいきませんでした...私はかなり必死です。

プラグインはここに含まれています:http://jsfiddle.net/meridius/AVA6M/


編集:

OK、それは速くて汚いです、しかし私はそれをAJAXなしでjsfiddle.netで動作させることができました。完璧ではありませんが(結果は入力としてフィルタリングされません)、結果を選択すると、私が何を意味するかがわかります。

4

1 に答える 1

1

ここに画像の説明を入力してください

Chrome(F12)を使用してフィドルをデバッグすると、2257行目ojquery-1.9.1.jsで問題が見つかりました。これはイベント伝播の問題だったので、次のコードで問題を解決できるはずです。

select: function (event, ui) {
            o.onSelect(event, ui, box, boxID);
            return false; //This line stops event propagation solving the problem.
},

注:イベントの伝播を停止する方法の詳細については、この投稿を参照してください。event.preventDefault()vs.falseを返す

于 2013-03-21T16:05:41.960 に答える