2015-09-04 28 views
1

我使用select2.full.js选择二4.0.0级联的下拉列表中

我没有使用任何require.js帮我拉模块

,我基本上使用我懂得从一切我学会了在v3.5

我一直在尝试无数个小时,围绕这个包裹我的头,但我不知道如何使ajax级联下拉。

例如:您加载页面,有第一个select2下拉菜单自动地使用ajax拉取数据(您不输入任何内容..数据在服务器的页面加载中),选择默认值。由于选择了默认值,第二个select2下拉菜单将使用该值进行ajax调用以填充其自己的列表。现在,当我在第一个select2下拉列表中选择另一个值时,第二个select2下拉列表将反映新数据集的这些更改。

我能够想出的是可以在页面加载时填充的3个下拉列表,但是当您执行任何ajax请求时,下拉数据不会更改。

自从我使用select2以来,已经两年了,并且库不停地变化,文档不断变化,我凭借这个库在我的智慧结束。但我感受到它的引导支持,以及外观和感觉。功能,实现方式的方式,文档非常令人难以置信。

我没有任何有用的代码,我一直在拉,堵,修改等,现在我正在移动到我的头发和牙齿。

任何有用的例子,这样做会很棒。

+0

你想在Select2 4.0.0或3.5.4中做到这一点? –

+0

select2 4.0.0,但我想通了..我发布的解决方案.... – sksallaj

回答

0

刚刚发现我的答案..

我用的模板:

<select id="test"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
</select> 

到:

data = [{id: "1", text: "1"}, {id: "2", text: "2"}]; 

<input id="test" type="hidden" /> 

,只是保留了我的jQuery的选择2相同。所以这实际上只是模板的改变而已,解决了它。

然而,唯一的缺点是,当你被刷新,从这些下拉菜单的新数据,高亮(选择的值)始终在下拉列表中的第一个项目,尽管这不是在显示所选值下拉。

0

这里是一个小的代码片段,使选择二(4.x版)级联下拉菜单 - https://gist.github.com/ajaxray/187e7c9a00666a7ffff52a8a69b8bf31

使用此模块,选择2列表框的选项将根据另一选择2列表选择要加载/阿贾克斯刷新框。

实施例使用 -

new Select2Cascade($('#province'), $('#district'), 'path/to/geocode', {type:"district", parent_id: ''});

选择的父的值SELECT2列表框将AJAX调用前被设置为数据对象的parent_id

+0

如何将JSON数组的对象传递给子级下拉? https:// stackoverflow。COM /问题/ 44281109 /如何做 - 修改 - 选择2 - 级联下拉到接受-阵列的对象,JSON – Haris