Jquery 如何在select2中获取动态下拉数据
在Rails4.0中,我使用select2(引导)插件。我想在自动完成列表中生成动态数据,但列表中没有加载数据。 如果我使用下面的代码,我将得到一个类似“UncaughtTypeError:Cannotcallmethod'toUpperCase'ofUndefined”的错误 代码参考 在上面的链接中,我使用了两个名为select2.js、select2.min.js的js文件 在控制器端Jquery 如何在select2中获取动态下拉数据,jquery,ruby-on-rails,twitter-bootstrap,jquery-select2,Jquery,Ruby On Rails,Twitter Bootstrap,Jquery Select2,在Rails4.0中,我使用select2(引导)插件。我想在自动完成列表中生成动态数据,但列表中没有加载数据。 如果我使用下面的代码,我将得到一个类似“UncaughtTypeError:Cannotcallmethod'toUpperCase'ofUndefined”的错误 代码参考 在上面的链接中,我使用了两个名为select2.js、select2.min.js的js文件 在控制器端 def names @query = params[:q] @name_list = Keyword
def names
@query = params[:q]
@name_list = Keyword.where("value LIKE '%#{@query}%' AND category = 'Name'").limit(15)
@names = @name_list.collect(&:value)
@ids = @name_list.collect(&:id)
@id_name_pairs = Hash[@ids.zip(@names)]
@values = []
@id_name_pairs.each_pair do |k, v|
hash = {}
hash["id"] = k
hash["value"] = v
@values.push(hash)
end
respond_to do |format|
format.html{}
format.js {
render :json => @values
}
end
end
请帮助我解决select2问题。问题出在您的控制器上。如果不进行自定义格式化,则在json响应的值哈希中指定键名“value”,而不是指定“text” 其在文档中: 诸如此类:
@id_name_pairs.each_pair do |k, v|
hash = {}
hash["id"] = k
hash["text"] = v
@values.push(hash)
end
等等,您是否同时使用select2.js和select2.min.js?我假设它们都代表相同的库/代码,在这种情况下,你应该只使用其中一个。是的,我只是想问同样的问题。我只添加了select2.js文件,然后我得到了相同的错误。后来我添加了select2.min.js文件。你真的只需要其中一个文件,因为它们基本上做同样的事情。JS文件的.min版本意味着它是压缩的。你甚至可以用网站来解压它们,比如——压缩只是删除了你放入脚本中的所有“人性化”格式(注释、长格式变量名等),以创建一个真正精简的版本
@id_name_pairs.each_pair do |k, v|
hash = {}
hash["id"] = k
hash["text"] = v
@values.push(hash)
end