Mootools Autosuggestion Настройка - PullRequest
       10

Mootools Autosuggestion Настройка

0 голосов
/ 04 января 2012

Один из моих плагинов с расширением http://digitarald.de/project/autocompleter/ для автозаполнения Страна, Штат и Город.

Например: Штат должен иметь два ввода, например, текст для поиска и код страны.

Из документации вышеуказанного плагина, который использует

'postVar' : 'text',
'postData':{'country':$('country'.get('value'))},

для передачи нескольких аргументов.

Здесь $('country') устанавливает код страны из первого предложения. Теперь проблема в том, что я не могу отправить country в качестве входных данных, потому что это происходит из динамического вызова javascript. Как решить проблему.

Попробовал следующим образом

 var countryAutocomplete = new Autocompleter.Request.JSON('countrySearch', 'www.example.com/country', {
          'postVar' : 'text',
          'minLength': 1,
          'injectChoice': function(areas){

            var choice = new Element('li', {'class': 'autocompleter-choices1', 'id':areas.label});
                new Element('div', {'html': this.markQueryValue(areas.label),'class': 'autocompleter-choice1'}).inject(choice);
                this.addChoiceEvents(choice).inject(this.choices);
                choice.store('autocompleteChoice', areas);

            }


        });


        //set the selected value in a hidden field
        countryAutocomplete.addEvent('onSelection', function(element, selected, value, input) {
            $('country').value = country =  selected.retrieve('autocompleteChoice').id;

            });

        // suggets states
        var stateAutocomplete = new Autocompleter.Request.JSON('stateTxt', 'www.example.com/state', {
          'postVar' : 'text',
          'postData':{'postData':{'country':$('country'.get('value'))},},
          'minLength': 3,
          'injectChoice': function(areas){

            var choice = new Element('li', {'class': 'autocompleter-choices1', 'id':areas.label});
                new Element('div', {'html': this.markQueryValue(areas.label),'class': 'autocompleter-choice1'}).inject(choice);
                this.addChoiceEvents(choice).inject(this.choices);
                choice.store('autocompleteChoice', areas);

            }


        });

Любая помощь будет признательна.

Спасибо

1 Ответ

0 голосов
/ 10 января 2012

похоже на

'postData':{'country':$('country'.get('value'))},

должно быть:

'postData':{'country':$('country').get('value')},

Также "состояния suggets" должны обновляться каждый раз, когда $ ('country') изменяется no? Если да, разве вы не должны делать запрос на автоматическое заполнение штата на Выбор страны для автоматического заполнения?

А

$('country').value = country =  selected.retrieve('autocompleteChoice').id;

похоже, что так будет лучше:

$('country')set("value",selected.retrieve('autocompleteChoice').id);

Ура!

...