2

我正在使用带有剔除的 Select2 控件,并且我有一个特殊要求,我需要根据 select2 组合框中的选项长度动态设置 Select2 控件的 minimumInputLength 选项。例如,如果我有 100 个选项,我需要将 minimumInputLength 设置为 2,如果它小于 100,我需要将其设置为空(或 0)。

我尝试了以下选项。select2Combobox 这里是我创建的自定义绑定。

1) 有一个 ko 计算属性(绑定到 minimumInputLength 设置),它将根据 select2 绑定到的 observableArray 的长度返回 2 或 0。这里 TypeAheadMinInputLength 是我的计算属性。

select2Combobox: { select2Options: { width: '100%', minimumInputLength: TypeAheadMinInputLength}, data: TypeaheadData}

2) 将 minimumInputLength 设置与函数调用绑定,该函数调用再次根据函数提供的输入数组的长度返回 2 或 0。

select2Combobox: { select2Options: { width: '100%', minimumInputLength: getTypeAheadMinInputLength(TypeaheadData())}, data: TypeaheadData}

有什么建议么

谢谢。

4

1 回答 1

1

我不知道这会有所帮助,但是您可以通过更新此内部字典来动态更新给定 select2 的 minimumInputLength 的值。这是hackish,但它有效:

$('#id_of_select').data("select2").opts.minimumInputLength = 0

因此,不会是 select2 将计算 minimumInputLength 的值,但您可以向表单添加更改事件并在每次需要时更新 select2 小部件

于 2015-01-29T14:24:13.260 回答