如何在一个已初始化了select2的输入框上设置默认值?

13 浏览
0 Comments

如何在一个已初始化了select2的输入框上设置默认值?

如何在使用select2时设置输入框的默认值?以下是我的HTML代码:


以及我的javascript代码:

$("#itemId0").select2({
    placeholder: '选择一个产品',
    formatResult: productFormatResult,
    formatSelection: productFormatSelection,
    dropdownClass: 'bigdrop',
    escapeMarkup: function(m) { return m; },
    minimumInputLength:1,
    ajax: {
        url: '/api/productSearch',
        dataType: 'json',
        data: function(term, page) {
            return {
                q: term
            };  
        },  
        results: function(data, page) {
            return {results:data};
        }   
    }   
});
function productFormatResult(product) {
   var html = "";
   html += "
"; html += product.itemName ; html += "
"; return html; } function productFormatSelection(product) { var selected = ""; return selected + product.itemName; }

以下是问题所在:

如果我不将输入框初始化为select2框,我可以显示输入框的默认值,即"物品编号1":

1st

但是当我使用select2进行初始化时,例如$("#itemId0").select2({此处为代码});,我无法显示文本框的默认值:

2

有人知道如何显示默认值吗?

0
0 Comments

问题的原因是无法在使用Select2插件初始化的输入框上设置默认值。解决方法是使用Select2文档中描述的initSelection方法。根据Select2文档的说明,initSelection方法在创建Select2时调用,允许用户根据所附加元素的值来初始化选择。

解决方法是参考Select2文档中的Loading Remote Data示例,以展示如何结合AJAX请求来使用initSelection方法。

对于多选框,上述解决方法无效。在新版本中,可以在select2.org/programmatic-control/…找到加载远程数据的文档。

以上是关于如何在使用Select2初始化的输入框上设置默认值的问题的原因和解决方法。

0
0 Comments

问题的出现原因是,当使用select2插件初始化一个输入框时,希望设置输入框的默认值。然而,如果只设置了value属性,输入框的默认值并不会显示出来。

解决方法是,首先在input元素中添加data-init-text属性,并将其值设置为期望的默认值。同时,也需要将value属性设置为相同的默认值。然后,需要编写一个initSelection函数,该函数用于初始化选择框的默认值。在这个函数中,通过获取data-init-text属性的值,并将其作为选项的text和id,使用callback函数返回。最后,确保callback函数返回的键值对与ajax调用返回的键值对相同。

同时需要注意的是,如果将value字段保留为空,那么输入框将默认为空。因此,在设置默认值时,需要确保同时填充value属性。

完整的解决方法如下:



通过以上方法,就可以在使用select2插件初始化的输入框上设置默认值了。

0
0 Comments

问题出现的原因是,在过去的版本中,Select2需要一个名为initSelection的选项,用于在使用自定义数据源时确定组件的初始选择。但在最新版本中,这个选项已被data adapter上的current方法取代。

解决方法是使用setValue方法。直接在底层的