2011-11-25 72 views
2

我成功使用了jQuery自动完成组合框示例。但是,在该示例中,下拉列表的源使用硬编码值创建。如何将动态源代码传递给jQuery UI组合框?

当然我想在我的应用程序中使用多个组合框。不幸的是,我看不到一种方法来实现这一点。

的代码手术片断在“combobox.js”是:

lastXhr = $.getJSON("the_hardcoded_json_request_string", request, function(data, status, xhr) { 
... 
} 

我尝试添加上面所用“hasClass”来检查类的存在一些行。再次不幸的是,我甚至无法确定哪个对象正在调用此代码。它有一个未定义的id,我对hasClass的调用是false。什么在地狱?

我在我的主JavaScript代码看起来像这样组合框的呼叫:

$("#myselect").combobox(); 

我确信,()是用来传递一些参数,如果我想要的,但在combobox.js声明看起来是这样的:

var cache = {}, lastXhr; 
$.widget("ui.combobox", { 
    _create: function() { 
... 

咦?我显然没有Javascript专家,但是我对于.widget没有任何理解,或者对“combobox()”的调用如何神奇地知道要从combobox.js调用代码。如果可以的话请帮忙!

+0

你能提供一个链接到combobox.js吗?它只是jQueryUI为组合框部件提供的JS吗? –

+0

是的,就是那个。 – AKWF

回答

1

我会尝试以下几行。

(function($) { 
    $.widget("ui.combobox", { 
     _create: function(options) { 

      // Some code 

      var input = this.input = $("<input>") 
      .insertAfter(select) 
      .val(value) 
      .autocomplete({ 
       delay: 0, 
       minLength: 0, 
       source: options.source, 

       // More options... 

      }) 

      // More code... 

     }); 
    })(jQuery); 

$("#myselect").combobox({source: 'http://yoursite.com/your/sourceurl'}); 

观察在_create功能和用于包装自动完成构件的源属性的“option.source”值所添加的选项参数。

相关问题