Javascript 输入选择器在设置值后处理过滤器

Javascript 输入选择器在设置值后处理过滤器,javascript,jquery,input,dropdown,Javascript,Jquery,Input,Dropdown,我使用的是“”可以找到它的引用。 我使用这个插件的下拉菜单。我使用以下代码启动下拉列表: $('#test').inputpicker({ data:[ {value:"1",text:"USD"}, {value:"2",text:"EUR"}, {value:"3",text:"CNY"} ], fie

我使用的是“”可以找到它的引用。 我使用这个插件的下拉菜单。我使用以下代码启动下拉列表:

$('#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"
设置“我的”字段的值后,当用户尝试打开下拉列表并查找其他项目时,除了“USD”之外,没有可见的项目。要选择其他项目,用户应手动擦除所有字符,然后显示其他项目

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

我在这里创建了一个代码示例:

有点老套,但它可以工作:

设置
过滤器open: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);
});

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

根据
InputPicker
的文档,将
filterOpen
设置为
false
将停用过滤器,并显示所有数据

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

$(文档).ready(函数(){
$('#test')。输入选择器(“val”,“1”);
});
$(“#测试”).inputpicker({
数据:[
{值:“1”,文本:“USD”},
{值:“2”,文本:“EUR”},
{值:“3”,文本:“CNY”}
],
字段:[
{name:'value',text:'Id'},
{名称:'text',文本:'Title'}
],
自动打开:对,
头像:假,
过滤器打开:错误,
fieldText:“文本”,
fieldValue:“值”
});

你确定你正在“选择”一个项目,而没有设置下拉数据是什么?是的,在清除我的输入后,将显示其他项目。你能让你的代码运行吗?检查此链接:我检查了你的代码,因为你设置了
过滤器打开:true
。我把它拿走了,它工作正常