标签: jquery-select2

在Select2中动态添加选项和optgroup

使用以下html:

<input type='hidden' id='cantseeme'>
Run Code Online (Sandbox Code Playgroud)

我在动态创建Select2控件并添加我的选项时没有遇到任何问题:

// simplified example
var select2_ary = [];

select2_ary.push({
    id : "one",
    text : "one"
});
select2_ary.push({
    id : "two",
    text : "two"
});

$("#cantseeme").select2({
    placeholder : "Pick a number",
    data : select2_ary
});
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法弄清楚如何添加optgroups这种方式.我在github上发现了这个讨论,并在博客上发表了这篇文章,但前者似乎没有讨论动态optgroup添加,我根本无法理解后者.

有人有主意吗?

javascript jquery jquery-select2

23
推荐指数
2
解决办法
2万
查看次数

选择2获取选定的选项数据

$("#e2").select2("val")返回值,但我不想.$listtypes['name'] .从数据名称或选项标签显示中获取以太.

我想获取所选选项的选项数据名称,我该如何实现?

这是我的选择生成器

foreach($core->list_types() as $listtypes){
echo "
<option 
  data-name='".$listtypes['name'] ."' 
  value='".$listtypes['id']."'>
  ".$listtypes['name'] ."
</option>";
}
Run Code Online (Sandbox Code Playgroud)

jquery jquery-select2

23
推荐指数
4
解决办法
5万
查看次数

如何在webpack中使用select2?

我使用webpack管理我的所有资产,当我使用此代码来要求select2(https://github.com/select2/select2)我得到了错误

$(...).select2不是函数.

require.ensure(['./vendors/select2'],function (require) {
    require('./site');
});
Run Code Online (Sandbox Code Playgroud)
// site.js
(function ($) {
    $(document).ready(function () {
        $(".js-1example-basic-single").select2();
    });
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

我认为模块导出有问题.我尝试了许多搜索,但没有希望.

有人请告诉我该怎么做,花了我大约10个小时.

谢谢!

jquery-select2 webpack select2

23
推荐指数
3
解决办法
2万
查看次数

使用Select2的createSearchChoice函数

我正在尝试使用createSearchChoice函数,以允许用户在默认列表不足时输入自己的选择.当我尝试在<select>元素上使用此函数时,我收到以下错误:

Error: Error: Option 'createSearchChoice' is not allowed for Select2 when attached to a <select> element.

我尝试使用<input type='hidden'>元素,但现在得到以下错误:

Error: uncaught exception: query function not defined for Select2 'MyInputName'

我宁愿使用SELECT元素保持与现有的代码(需要选择多个选项的能力)线,但只需要一个用户能够输入除了从先前的列表中选择自己的选项.

jquery jquery-select2

22
推荐指数
1
解决办法
3万
查看次数

使用Selenium webdriver处理Select2

我一直在试图从使用selenium webdriver的ajax启用的select2选择列表中选择一个选项.我已经设法使用IE webdriver而不是firefox.这是我对IE的hacky解决方案

 public static void SetSelect2Option(this IWebDriver driver, By locator, string subContainerClass, string searchTerm, TimeSpan? ajaxWaitTimeSpan = null)
    {
        var select2Product = driver.FindElement(locator);
        select2Product.Click();
        var searchBox = driver.FindElement(By.CssSelector(subContainerClass + " .select2-input"));
        searchBox.SendKeys(searchTerm);
        if (ajaxWaitTimeSpan != null)
        {
            driver.Manage().Timeouts().ImplicitlyWait(ajaxWaitTimeSpan.Value);
        }
        var selectedItem = driver.FindElements(By.CssSelector(subContainerClass + " .select2-results li")).First();
        selectedItem.Click();
        selectedItem.SendKeys(Keys.Enter);
    }
Run Code Online (Sandbox Code Playgroud)

在Firefox中,此解决方案一直运行到SendKeys调用的位置,它只是挂起并继续下一步而不实际触发select2的事件来填充所选项目.

我也厌倦了使用http://code.google.com/p/selenium/wiki/AdvancedUserInteractions api,结果相似.

有没有人遇到过类似的问题?

c# selenium jquery-select2 selenium-webdriver

22
推荐指数
2
解决办法
1万
查看次数

如何以编程方式将搜索查询注入Select2 v4?

我使用Select2搜索框构建了一个web-app,它通过AJAX连接到我们的后端.搜索框将查询(例如"APPLES")传递给后端,然后后端更新页面.如何以编程方式将搜索查询注入搜索框?我需要传入"val",以便select2通过AJAX调用后端并更新页面.我确信这很明显,但我在文档中找不到它.

例如,我希望用户单击一个按钮并在搜索字段中自动填充"APPLES"一词,然后让页面更新,而不是强迫用户在搜索框中键入"APPLES".

谢谢!


在Kevin的评论之后,我不处于这种状态,其中文本嵌入在搜索框中,并且选择器已经选择了正确的项目.如何提交(或触发)此请求,我尝试了"keydown","pressdown","submit","click"(清除框)等.

在此输入图像描述

javascript jquery-select2 jquery-select2-4

22
推荐指数
4
解决办法
1万
查看次数

如何在v4.0中为select2元素添加类

这与关于如何将类添加到select2元素的这个问题非常相似,但是那里的答案似乎针对的是早期版本的框架,它在v4.0中经历了一些重大变化

根据这个问题,以添加额外的自定义类来选择2容器,有几个无证属性,你可以传递给选择2的构造,包括:containerCss,containerCssClass,dropdownCss,和dropdownCssClass.

但是在版本4中,当我运行以下代码时:

$('.select2').select2({
    containerCss: "wrap"
});
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

未捕获错误:没有select2/compat/containerCss

如何在v4.0中将类传递给Select2?

这是StackSnippets中的一个例子:

$('.select2').select2({
    containerCss: "wrap"
});
Run Code Online (Sandbox Code Playgroud)
<link href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.css" rel="stylesheet"/>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.js"></script>

<select class="select2 narrow wrap">
  <option value="AL">Algebra</option>
  <option value="AK">Alaska</option>
  <option value="AZ">Arizona</option>
</select>
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-select2

22
推荐指数
2
解决办法
3万
查看次数

设置Angular-UI Select2多指令的初始值

我有一个select2指令,用于多个国家/地区的自定义查询以获取数据:

// Directive
<input ng-model="filters.countries" ui-select2="filters.countryOptions"
    data-placeholder="Choose a country...">

// filters.countryOptions
{ 
    multiple: true,
    query: function() { 
        get_list_of_countries(); 
    }
}

// Formatted data from remote source
[
    {id: 'US', text: 'United States'},
    {id: 'CA', text: 'Canada'} ...
]
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下方法在控制器中设置最初选择的值:

$scope.filters.countries = [{id: 'US', text: 'United States'}];
Run Code Online (Sandbox Code Playgroud)

这确实正确地设置了模型,但这是在select2初始化发生之前发生的.当我逐步执行剩余的初始化代码时,输​​入会[Object]在最终消隐$scope.filters.countries和输入之前暂时显示,但它不会在输入中显示占位符文本.

为了解决这个问题,我使用以下方法重置模型的初始值:

$scope.$on('$viewContentLoaded', function() {
    setTimeout(function() {
        $scope.filters.countries = [{id: 'US', text: 'United States'}];
    }, 100);
});
Run Code Online (Sandbox Code Playgroud)

使用a似乎非常hackish setTimeout.有没有更好的方法让我失踪?

更新1

根据ProLoser的要求,这里有一个demo和github票.

演示:http://plnkr.co/edit/DgpGyegQxVm7zH1dZIJZ?p = preview

GitHub问题:https …

angularjs jquery-select2 angular-ui

21
推荐指数
1
解决办法
2万
查看次数

防止select2向下翻转下拉列表

根据标题,是否有办法强制select2始终创建下拉列表而不是下拉?

当你在下拉列表上方滚动,添加新的CSS类"select2-drop-above"或两者兼而有之时,似乎还有一些javascript导致翻转.

编辑:我应该指定我通过select2-rails拉动库.我希望有一种解决方法,不涉及在我自己拉动整个select2 lib并直接编辑select2.js文件.

javascript css jquery jquery-select2 select2-rails

21
推荐指数
4
解决办法
3万
查看次数

如何从select2 multiselect中的选项列表中删除所选选项,并按选择的顺序显示所选选项

我在我的表单中有select2多选字段,我想在选中它后从下拉列表中删除所选选项,如果从列表中删除它,再次将其添加到列表中.此外,添加的项目应与选择的顺序相同.当前select2(4.0)不会删除所选项目,并且它按照它们在下拉列表中显示的顺序显示所选项目,而不是按选择顺序显示.

$(document).ready(function(){
    $('#dynamicAttributes').select2({
            allowClear: true,
            minimumResultsForSearch: -1,
            width: 600
     });
 });
Run Code Online (Sandbox Code Playgroud)

JSFiddle:https://jsfiddle.net/rd62bhbm/

jquery jquery-select2 select2

21
推荐指数
2
解决办法
6万
查看次数