私はjquery-ui-autocompleteを持つ場所の入力フィールドを持っています。オートコンプリートに似た言葉を提案するには
<script type="text/javascript">
$(document).ready(function(){
var location_input=$('input[id="location-autocomplete"]');
var cityNames = [
{ value: 'Mallorca' },
{ value: 'Berlin' },
{ value: 'London' },
// many other elements
];
location_input.autocomplete({
source: cityNames,
minLength: 2
});
});
// keeps same width as box
jQuery.ui.autocomplete.prototype._resizeMenu = function() {
var ul = this.menu.element;
ul.outerWidth(this.element.outerWidth());
}
</script>
ただし、同じ場所に異なる名前を付けることはできません。
たとえば、ユーザーがMallorcaを探したいとします。彼は書くことができます:マヨルカ、マヨルカ、パルマ、PMIまたはパルマ。
私の最初のアイデアは、しかし、これは非常に混乱することができlabel
プロパティ
var cityNames = [
{ value: 'Mallorca', label: 'Palma de Mallorca' },
{ value: 'Mallorca', label: 'Mallorca' },
{ value: 'Mallorca', label: 'Majorca' },
// etc
];
を使用することでした。オートコンプリートは、彼らが同じ場所であっても、マヨルカ、パルマとマヨルカを示すだろう馬を書きます。
私は馬を入力するとき、ユーザは一つだけ提案を取得することにしたいと思います。同様に、ユーザーがマジ、またはpalと入力しても、マヨルカの候補語は1つだけにする必要があります。
は理想的には、追加のプロパティは完璧だっただろう検索する入力キーワードとして働いinput
と呼ばれます。その後、それぞれについてvalue
とinput
のプロパティを持つ配列を持つことは、このトリックを実行したことになります。残念ながら、私はドキュメントでそのようなものを見つけることはできませんでした。
あなたが見ることができるように、私はソースタイプarray
として使用しています。私が読んだものについては、おそらくfunction
タイプは私にこのようなことをさせてくれるだろうが、私はjsに慣れていないし、それについて明確な例も見つけられなかったので、
簡単な方法でどのように達成できますか?
答えをありがとう!私は一度それをする別の方法を考え出したらそれを見ました。とにかく、あなたのスニペットが動作するようだと私のように、ソリューションはdjangoのためだけではないので、私はこれを受け入れられた答えとしてマークします。 – J0ANMM