Select2 4.0 配置了 placeholder 及 results 有相同的选项,会在下拉结果中无该元素的原因...

在隐藏Placeholder的时候移除了移同的data
 

 
 





转载于:https://www.cnblogs.com/dazaxiaoer/p/6103425.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要在前端页面引入 Select2 插件和 jQuery 库。在 HTML 中添加一个 Select2下拉框,并设置 id 和 name 属性: ```html <select id="tree-select" name="tree-select"></select> ``` 然后,在 JavaScript 中初始化 Select2 插件,并使用 Ajax 加载树状数据: ```javascript $("#tree-select").select2({ placeholder: "请选择", allowClear: true, ajax: { url: "/tree/search", dataType: "json", delay: 250, data: function(params) { return { q: params.term, // 搜索关键字 page: params.page // 分页页码 }; }, processResults: function(data, params) { params.page = params.page || 1; return { results: data.items, pagination: { more: (params.page * 30) < data.total_count // 是否还有更多数据 } }; }, cache: true }, escapeMarkup: function(markup) { return markup; }, minimumInputLength: 1, // 最小输入长度 templateResult: formatResult, // 格式化下拉选项 templateSelection: formatSelection // 格式化选中项 }); ``` 上面的代码中,我们使用了 Ajax 加载树状数据,后端的 Java 代码需要提供一个 `/tree/search` 的接口,接收搜索关键字和分页参数,返回 JSON 格式的数据。下面是一个简单的 Java 实现: ```java @RequestMapping("/tree/search") @ResponseBody public Map<String, Object> searchTree(@RequestParam("q") String keyword, @RequestParam("page") int page) { Map<String, Object> result = new HashMap<>(); List<Node> nodes = nodeService.searchNodes(keyword, page, 30); // 查询节点数据 result.put("items", nodes); result.put("total_count", nodeService.countNodes(keyword)); // 查询总数 return result; } ``` 其中,`nodeService.searchNodes` 和 `nodeService.countNodes` 是自己实现的查询方法,返回节点列表和总数。最后,我们需要编写两个函数 `formatResult` 和 `formatSelection` 分别用于格式化下拉选项和选中项的样式。 ```javascript function formatResult(node) { if (node.loading) { return node.text; } var markup = "<span class='select2-result-tree-node'>" + node.text + "</span>"; if (node.children && node.children.length > 0) { markup += "<ul>"; for (var i = 0; i < node.children.length; i++) { markup += "<li>" + formatResult(node.children[i]) + "</li>"; } markup += "</ul>"; } return markup; } function formatSelection(node) { return node.text; } ``` 上面的代码中,`formatResult` 函数使用递归方式生成树状结构的 HTML,`formatSelection` 函数直接返回选中项的文本。至此,树状搜索下拉框的实现就完成了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值