2011-08-18 62 views
2

你好我使用Ajax的自动完成的jQuery如何在jQuery的Ajax自动完成中传递额外的参数?

在我的jQuery

我使用

 options = { serviceUrl: "<? echo $this->config->item('base_url'); ?>index.php/welcome/autocomplete" };  
     a = $('#query').autocomplete(options); 

我看到了,我可以通过像

var a = $('#query').autocomplete({ 
    serviceUrl:'service/autocomplete.ashx', 
    minChars:2, 
    delimiter: /(,|;)\s*/, // regex or character 
    maxHeight:400, 
    width:300, 
    zIndex: 9999, 
    deferRequestBy: 0, //miliseconds 
    params: { country:'Yes' }, //aditional parameters 
    noCache: false, //default is false, set to true to disable caching 
    // callback function: 
    onSelect: function(value, data){ alert('You selected: ' + value + ', ' + data); }, 
    // local autosugest options: 
    lookup: ['January', 'February', 'March', 'April', 'May'] //local lookup values 
    }); 

额外的参数,所以我想创建N个新参数并且像这样传递

  var a = $('#query2').autocomplete({ 
      serviceUrl: "<? echo $this->config->item('base_url'); ?>index.php/welcome/autocomplete", 
      id:'query2' 
      }); 

怎么可以我从自动完成代码访问额外的参数?我想那个ID添加到我的

.autocomplete-w1 

最初它看起来像这样

<div class="autocomplete-w1"></div> 

我想将其更改为

<div id="jquery2" class="autocomplete-w1"></div> 

请帮助........ ........................

UPDATE

我试图将我的id参数给这个函数

function Autocomplete(el, options) { 
    this.el = $(el); 
    this.el.attr('autocomplete', 'off'); 
    this.suggestions = []; 
    this.data = []; 
    this.badQueries = []; 
    this.selectedIndex = -1; 
    this.currentValue = this.el.val(); 
    this.intervalId = 0; 
    this.cachedResponse = []; 
    this.onChangeInterval = null; 
    this.ignoreValueChange = false; 
    this.serviceUrl = options.serviceUrl; 
    this.isLocal = false; 
    this.options = { 
     autoSubmit: false, 
     minChars: 1, 
     maxHeight: 300, 
     deferRequestBy: 0, 
     width: 0, 
     highlight: true, 
     params: {}, 
     fnFormatResult: fnFormatResult, 
     delimiter: null, 
     zIndex: 9999, 
     id:'test' 
    }; 
    this.initialize(); 
    this.setOptions(options); 
    } 

我给了一个默认值test。当我提醒$this.options.id我总是得到'test'价值我passig jquery2没有得到。那里有什么问题?

回答

1

嗯。我解决了它。

function Autocomplete(el, options) { 

添加额外的参数ID

 a = $('#query').autocomplete({ 
             serviceUrl: "<? echo $this->config->item('base_url'); ?>index.php/welcome/autocomplete", 
             id: 'query' 
            }); 

在我jquery.autocomplete.js我得到这样

this.id = options.id; 

该参数现在我可以把它添加到div的ID

<div class="autocomplete-w1" id='+this.id+'></div> 

谢谢.................... :) :):D

相关问题