2011-12-20 89 views
3

我有这个问题,在一个表单中,我有一个可能超过300的客户列表,对于我来说,它不是很简单,因为我应该滚动查找单个行的所有结果!超过300行的下拉列表的最佳解决方案?

在旧技术我有一个按钮,打开一个弹出,我应该好好研究,我应该选择哪一个客户,比我用一个JavaScript记录的第一个表单上的选择,但它可能是新的一个很好的解决方案技术!

我该如何解决这个疑问?什么是大<select>标签的最佳解决方案?

+0

考虑发布您的问题上http://ux.stackexchange.com/ – robasta 2011-12-20 10:46:10

回答

3

你基本上要自动完成下拉列表。这在标准JSF组件集中不存在,并且在标准JSF组件集之上使用JavaScript/jQuery实现也不是微不足道的,因为可用值必须存在于服务器端的状态中。您还基本上需要一个下拉列表,其代表<div><input><ul><li>而不是<select><option>,因为正常的<select>不允许最终用户键入文本。标准JSF组件集没有呈现所需HTML标记的组件。你基本上需要创建一个自定义的JSF组件。

有第三方JSF组件库已经提供了一个完整的JSF自动完成下拉列表。使用它们中的任何一个都可能更容易,而不是通过定制的JSF组件重新发明轮子。任你选:

1

是,jQuery的自动完成插件是你最好的解决方案,而你有大量的项目。

顺便说一句,想象一下,你想选择一个具有特定字母的项目。当您使用下拉列表时,您可以通过从每个列表的第一个字母中输入他们的名字来指向您想要的项目。但是使用jQuery自动完成功能,您可以在任何地方搜索字符串或一组字母。插入的字母是否位于项目名称的第一个或其他位置无关紧要。

正如ShantanuD说,你可以找到这个插件在http://jqueryui.com/demos/autocomplete/