当前位置: 首页 > 知识库问答 >
问题:

Datalist-仅显示x数量的选项

陆阳曜
2023-03-14

所以我有一个html数据列表,它包含了几乎6000个选项,类似下面的示例。

问题是它在你的浏览器上打开了很多选项,我一次只需要10个就可以看到,而且它需要是一个在你开始打字时自动完成的字段

有没有办法只显示列表中返回的前10个选项?

for (i = 0; i < 6000; i++) { 
    $('#myList').append("<option value=Example'"+i+"'></option>");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input list="myList">

<datalist id="myList">
</datalist>

我发现这篇文章从3年前,但它是太慢,我的选择量使用。希望有人找到更好(更快)的解决方案,或者至少是另一种解决方案

共有2个答案

唐和洽
2023-03-14

我设法用所选的插件找到了解决办法。非常有效,可在bower和npm上轻松访问。

仉梓
2023-03-14

我发现堆栈溢出的另一个问题,可以通过将控件的类型从输入更改为选择来帮助您:

您可以在其中一个答案中找到解决方案的原始答案:使用滚动条创建下拉列表

for (i = 0; i < 6000; i++) { 
    $('#sel').append("<option value=Example'"+i+"'>Example'"+i+"'</option>");
}

document.getElementById('sel').addEventListener('click', onClickHandler);
document.getElementById('sel').addEventListener('mousedown', onMouseDownHandler);

function onMouseDownHandler(e){
	var el = e.currentTarget;
	
    if(el.hasAttribute('size') && el.getAttribute('size') == '1'){
    	e.preventDefault();    
    }
}
function onClickHandler(e) {
 	var el = e.currentTarget; 

    if (el.getAttribute('size') == '1') {
        el.className += " selectOpen";
        el.setAttribute('size', '6');
    }
    else {
        el.className = '';
        el.setAttribute('size', '1');
    }
}
select {
    position: absolute;
    z-index: 0;
    width: 200px;
}
.selectOpen {
    z-index:9;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="sel" size = "1">
</select>
 类似资料:
  • 当数据列表中有一组很长的元素时,它们都会显示,旁边有一个滚动条。有没有一种简单的方法可以只显示前5名,而不显示其他的? 例如:http://jsfiddle.net/yxafa/

  • 1)如何使用chart.js在折线图的X轴上只显示第一个、中间和最后一个或者只显示第一个和最后一个标签(日期)? 2) 此外,如果可能,我只想显示特定数量的垂直网格线。 代码: 折线图图像

  • 我正在使用引导datetimepicker库使用日历选择日期。现在,由于需求变化,我还需要选择时间和日期。 在新变化之前,我使用下面的代码在文本字段上显示日历: 通过上面的代码,日历显示正常,一切正常。 为了显示时间选项,我刚刚更改了如下格式: 但使用这种方式,只显示时间选项,不显示日历。请看我附带的屏幕截图: 单击此处查看问题屏幕截图 我正在使用以下库来使用日历: https://cdnjs.c

  • 我正在创建实时搜索功能。如果用户输入文本,搜索功能启动,发出请求并获得结果。每个结果都是datalist中的一个单独选项,该选项是动态添加的。每个结果都包含一个我想要显示的字段“display_name”。不幸的是,“display_name”并不总是包含用户输入的确切文本。数据集筛选结果,并不显示所有结果。我的想法是在value字段中输入与用户输入相同的值--这样所有的结果都将显示出来。不幸的是

  • 注意:即使某些“区域”没有值,也应该显示标签0、0.1、0.2、0.3、0.4和0.5。我尝试了我的不同选项,我发现的“最佳”是控制要显示的标签数量,但它不是我想要的: