Один из моих плагинов с расширением 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);
}
});
Любая помощь будет признательна.
Спасибо