我成功使用了jQuery自动完成组合框示例。但是,在该示例中,下拉列表的源是使用硬编码值创建的。
当然我想在我的应用程序中使用多个组合框。不幸的是,我没有办法实现这一目标。
“combobox.js”中的操作代码段是:
lastXhr = $.getJSON( "the_hardcoded_json_request_string", request, function( data, status, xhr ) {
...
}
我尝试在上面添加一些使用“hasClass”检查类是否存在的行。遗憾的是,我甚至无法告诉对象是在调用此代码。它有一个未定义的id,我对hasClass的调用是false。什么在地狱?
我在主javascript代码中对combobox的调用如下所示:
$("#myselect").combobox();
我确信如果我愿意,()用于传递一些参数,但是combobox.js中的声明如下所示:
var cache = {}, lastXhr;
$.widget( "ui.combobox", {
_create: function() {
...
咦?我显然没有Javascript高手,但我对$ .widget一无所知,或者对“combobox()”的调用如何神奇地知道从combobox.js调用代码。如果可以,请帮忙!
答案 0 :(得分: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函数中添加的options参数和包装器自动完成小部件的source属性的'option.source'值。