0

最初に与えられたオプションを選択するにはどうすればよいですか? ユーザーの位置に基づいて、逆ジオコーディングの結果 (都市) からのデータをオートコンプリート ウィジェットにフィードしています。都市のデータベースがあり、最初に提案されたオプションを選択する必要があります。

autocomplete_light_registry.py

autocomplete_light.register(
    City,
    search_fields=('^name',),
    autocomplete_js_attributes={'placeholder': _('Start typing...')}
)

フォーム.py

class CustomerForm(forms.ModelForm):
    city = forms.ModelChoiceField(City.objects.all(), label=_('City'), widget=autocomplete_light.ChoiceWidget('CityAutocomplete'))

location.js

$('#id_city_text').val(ymaps.geolocation.city);
var autocomplete = $('#id_city_text').yourlabsAutocomplete();
autocomplete.refresh();

ご協力いただきありがとうございます。

スクリーンショット:

参考文献:

4

3 に答える 3

4

プログラムでも選択肢を選択する必要があります。

$('#id_city_text').val(ymaps.geolocation.city);
var autocomplete = $('#id_city_text').yourlabsAutocomplete();
autocomplete.show('<span class="div" data-value="'+ymaps.geolocation.cityId+'">'+ymaps.geolocation.city+'</span>');
$('#id_city_text').trigger('selectChoice', [autocomplete.box.find(':first-child'), autocomplete]);

アイデアは、最初のオートコンプリートの提案で「selectChoice」をトリガーすることです。

于 2013-05-22T07:58:32.037 に答える
1

https://github.com/yourlabs/django-autocomplete-light/issues/139#issuecomment-18332107によると

location.js

$('#id_city_text').val(ymaps.geolocation.city);
var autocomplete = $('#id_city_text').yourlabsAutocomplete();
autocomplete.refresh();
autocomplete.show = function(html) {
    yourlabs.Autocomplete.prototype.show.call(this, html)
    var choices = this.box.find(this.choiceSelector);

    if (choices.length == 1) {
        this.input.trigger('selectChoice', [choices, this]);
    }
}
于 2013-05-23T09:29:46.857 に答える