聚合物纸输入html datalist自动完成/建议列表

前端之家收集整理的这篇文章主要介绍了聚合物纸输入html datalist自动完成/建议列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我在聚合物中使用简单的自动完成方法
  1. <paper-input autocomplete="on" name="stuff" list="stuffs"></paper-input>

有一个简单的项目列表
(尝试使用select和template元素来执行此操作)

  1. <datalist id="stuffs">
  2. <option value="blah blah"/>
  3. .
  4. .
  5. .
  6. </datalist>

事情是,我想找出一种方法来访问在打字过程中出现的动态下拉列表.
实际上有这种方法吗?

解决方法

我认为你最好的选择就是不要使用datalist.

这是我为自己编写的组件示例:

  1. <dom-module id="paper-autocomplete">
  2. <style>
  3. iron-collapse {
  4. Box-shadow: 6px;
  5. }
  6.  
  7. paper-button {
  8. width: 100%;
  9. text-transform: none;
  10. }
  11. </style>
  12. <template>
  13. <paper-input-container>
  14. <label>{{label}}</label>
  15. <content select=".content"></content>
  16. <input id="searchBox" class="paper-input-input" is="iron-input" bind-value="{{searchValue::input}}"></input>
  17. </paper-input-container>
  18. <iron-collapse id="collapse">
  19. <paper-material>
  20. <div>
  21. <template id="resultList" is="dom-repeat" items="{{choices}}" filter="_listFilter">
  22. <paper-item>
  23. <paper-button on-tap="_selectItem">{{item.name}}</paper-button>
  24. </paper-item>
  25. </template>
  26. </div>
  27. </paper-material>
  28. </iron-collapse>
  29. </template>
  30. </dom-module>
  31. <script>
  32. (function() {
  33. Polymer({
  34. is: "paper-autocomplete",properties: {
  35. choices: Array,label: String,value: {
  36. type: Object,},searchValue: {
  37. type: String,value: '',observer: "_valueChanged"
  38. }
  39. },ready: function() {
  40. this.$.resultList.render()
  41. },_valueChanged: function(e) {
  42. var collapse = this.$.collapse
  43. if (e != '' && !collapse.opened) {
  44. this.$.resultList.render()
  45. collapse.toggle()
  46. } else
  47. if (e == '' && collapse.opened) {
  48. collapse.toggle()
  49. }
  50. },_listFilter: function(item) {
  51. return item.name.toLowerCase().includes(
  52. this.searchValue.toLowerCase()
  53. )
  54. },_selectItem: function(event) {
  55. var collapse = this.$.collapse;
  56. this.set('searchValue',event.model.item.name)
  57. this.set('value',event.model.item)
  58. collapse.toggle()
  59. }
  60. })
  61. })()
  62. </script>

_valueChanged观察输入中对searchValue的更改并切换折叠. _listFilter根据searchValue过滤绑定到dom-repeat的项目.

可以将#resultList或#collapse元素放在其他位置以用于您自己的目的.

编辑

我应该指出,这里的选择是一个对象数组,每个对象都有一个name属性,就是它们的过滤方式.它可以很容易地改变,以根据你想要实现的内容过滤字符串数组.

猜你在找的HTML相关文章