2

我正在使用“ Jquery inputpicker 插件”,它的引用可以在这里找到。我将此插件用于下拉菜单。我使用以下代码启动下拉菜单:

$('#test').inputpicker({
    data:[
        {value:"1",text:"USD"},
        {value:"2",text:"EUR"},
        {value:"3",text:"CNY"}
    ],
    fields:[
        {name:'value',text:'Id'},
        {name:'text',text:'Title'}
    ],
    autoOpen: true,
    headShow: false,
    filterOpen: true,
    fieldText : 'text',
    fieldValue: 'value'
    });

我可以通过代码设置列表中的选定项目:

$('#test').inputpicker('val', 1); // selecting "USD"

设置我的字段的值后,当用户尝试打开下拉菜单并寻找另一个项目时,除了“美元”之外没有可见的项目。要选择其他项目,用户应手动擦除所有字符,然后将显示其他项目。

我正在寻找一种在设置选定项目后显示所有项目的方法。

我在这里创建了我的代码示例: https ://jsfiddle.net/6eL9pfdw/

4

2 回答 2

0

我认为,您应该在代码开头停用过滤器,否则它将仅显示根据文本框内容提供的内容。

根据文档InputPicker,设置filterOpenfalse停用过滤器,将显示您的所有数据。

在此处输入图像描述

更准确地说,您只需在初始代码中将其设置为 false

  $(document).ready(function(){
  $('#test').inputpicker("val" , "1");
});

$('#test').inputpicker({
    data:[
        {value:"1",text:"USD"},
        {value:"2",text:"EUR"},
        {value:"3",text:"CNY"}
    ],
    fields:[
        {name:'value',text:'Id'},
        {name:'text',text:'Title'}
    ],
    autoOpen: true,
    headShow: false,
    filterOpen: false,
    fieldText : 'text',
    fieldValue: 'value'
});
于 2021-01-14T12:54:00.450 回答
0

哈克但它有效:

设置filterOpen: false,这将防止在第一次打开时过滤数据。

绑定到focus事件并设置filterOpen = true. 这将重新启用过滤。

$(document).ready(function(){
  $('#test').inputpicker("val" , "1");
});

$('#test').inputpicker({
    data:[
        {value:"1",text:"USD"},
        {value:"2",text:"EUR"},
        {value:"3",text:"CNY"}
    ],
    fields:[
        {name:'value',text:'Id'},
        {name:'text',text:'Title'}
    ],
    autoOpen: true,
    headShow: false,
    filterOpen: false,
    fieldText : 'text',
    fieldValue: 'value'
});

$('#inputpicker-1').on("focus", function() {
    $('#test').inputpicker("set" , "filterOpen", true);
});
于 2021-01-07T15:56:01.097 回答