<select>
可能适合选择3-15个简单项目,但是你如何处理15-100 +?
最简单的选项就是拥有一个包含大量<select>
s的普通<option>
,但它不是非常用户友好。有很多滚动,可能很难找到你正在寻找的选项。好处是您可以(可能使用滚动)查看您拥有的所有选项。
更高级的选项将是一个包含自动填充功能的文本字段。用户输入一两个字母,然后您可以选择搜索结果。它可以让您更轻松地找到所需的选项 - 如果您知道 正在寻找什么。缺点是用户无法看到所有选项。
更高级的选项将构建一个“搜索,列表和选择”窗口小部件,默认显示X项,但允许您搜索。这种方法的一个优点是我可以允许搜索多个属性,而不仅仅是要选择的项目的名称。
答案 0 :(得分:4)
答案 1 :(得分:3)
你可以试试Unobtrusive Fast-filter Dropdown (UFD) jquery插件。这是迄今为止我最喜欢的,并且在不同的浏览器中表现得非常好,甚至ie6。它很容易设计,绝对是快速的。它可以管理数千个项目,并且比jQuery UI的组合框自动完成更快
答案 2 :(得分:3)
你应该看一下Choosen http://harvesthq.github.io/chosen 这是一个jQuery插件,可以生成一个更好的选择,并带有要搜索的文本字段。 该解决方案允许用户查看所有选项并特别搜索,而无需滚动。
答案 3 :(得分:2)
jQuery有Autocomplete plugin,jQuery UI中有Autocomplete。
答案 4 :(得分:1)
jQuery UI具有AutoComplete控件。您可以将回调函数与数据源绑定在一起,并使用Ajax来提取大型数据集。
答案 5 :(得分:1)
我看到一些可行的解决方案是在垂直列表上使用的fish eye selector。在线有很多javascript/CSS,Flash和Java示例。
答案 6 :(得分:1)
如果选项自然形成组,您可以考虑使用HTML optgroups而不是基于javascript的解决方案。它使大量选项更加有条理和易于管理,同时仍然保持所有选项可见。
我不知道您用来生成HTML的服务器端语言/框架,但是在Ruby on Rails中,您可以使用grouped_options_for_select自动生成optgroup。
答案 7 :(得分:0)
当有许多选项可供选择时,我喜欢自动完成选择。我找到了一个jQuery示例here。
答案 8 :(得分:0)
我按照以上答案中的建议尝试了以下内容: plugins.jquery.com/project/jquery-select-autocomplete docs.jquery.com/Plugins/Autocomplete/autocomplete jquery-ui.googlecode.com/svn/branches/labs/selectmenu/ 不引人注目的快速过滤器下拉(UFD)
我发现UFD是我最喜欢的那个,因为它最像下拉式并且内置了很多功能,其他的也有点儿。
但它仍然没有给我浏览器的一致性。我希望它在所有浏览器中以相同的方式工作。例如: 在普通的select元素中,如果我输入第一个字母,它将带我到以该字母开头的第一个选项,如果我然后按Enter键,它将选择它,但这里是它与浏览器的不同之处。有些浏览器会在Enter命中时触发onchange事件,有些浏览器会在下拉列表失去焦点之前触发。
UFD没有我正在寻找的“onchange”一致性