Mootools Autosuggestion定制

时间:2012-01-04 06:15:04

标签: autocomplete mootools

我的一个网站为自动提供的国家,州和城市扩展了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 :(得分:0)

看起来像

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

应该是:

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

每次$('country')改变no时,应该更新“suggets states”吗?如果是这样,您是否应该在选择countryAutocomplete?

时执行stateAutocomplete请求

并且

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

看起来会像这样更好:

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

干杯!