如何使用带有Inputmask的Select2

时间:2017-11-09 19:50:07

标签: jquery-select2 jquery-inputmask

我正在尝试使用Select2创建一个InputMask框来插入IP地址并将其添加为标记。

如果我自己使用任何一个库,它就像一个魅力,但两者一起导致奇怪的行为。

当我输入数字时,掩码未填充,而是似乎扩展了。

我将select2 <input class=“select2-search__field“>的类型从search更改为text。 Inputmask库使这一点成为必要,但它不应该导致错误,因为类型是functionally identical.

我创建了一个小提琴来显示行为:Fiddle

HTML:

<select multiple id="sel1" style="width:100%"></select>

JS:

$("#sel1")
.select2({
   tags: true 
})
.on("select2:open", function () {
   $(".select2-search__field")
   .attr("type","text")
   .inputmask({alias: "ip", greedy: false});  
})

在我的本地示例中,我将库更改为支持search,行为是相同的。

我错过了什么吗?

1 个答案:

答案 0 :(得分:4)

如果您必须使用版本4.0.5,那么有一个坏消息。

通过将select2降级为版本4.0.2

jsfiddle中修复

主要是版本&lt; = 4.0.2

https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.2/js/select2.js

尝试4.0.3以上4.0.6-rc.1,但没有运气。

使用select2打开issue select2#5216

我做了一些小改动,但这与问题本身无关。

$('.select2-search__field').attr('type', 'text');
$('.select2-search__field').attr('style', 'width: 10em;');
$('.select2-search__field')
.inputmask({
  alias: 'ip'
});