select2可输入可模糊匹配选择实现省市站级联选择(数据载入后默认为空值)

基于select2的二级联动 一级联动刀具库 // 刀具库 $("#pkBasKniStoId").init_select2ByRemoteData({ showSearch : true, url : contextPath + '/kniInfo_infoChip/queryKniStoList.do', data : { }, ... 阅读详情

需求:选择省-市-站场,选择省后才可选择市,选择市后才可选择站点,选择默认值为value=""

网上百度一大堆走了好几次弯路后乖乖回归文档解决了

文档地址:https://select2.org/

引入插件文档:

<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>

HTML:(示例需要)

<div class="col-sm-6 col-md-4">
								<div class="form-group form-inline">
									<label class="control-label">起(讫)省</label>
									<select class="form-control" name="startprov" data-key="Sheng">
										<option value=""></option>
									</select>
								</div>
							</div>
							<div class="col-sm-6 col-md-4">
								<div class="form-group form-inline">
									<label class="control-label">起(讫)市县</label>
									<select class="form-control" name="startcity" disabled data-key="Shi">
										<option value=""></option>
									</select>
								</div>
							</div>
							<div class="col-sm-6 col-md-4">
								<div class="form-group form-inline">
									<label class="control-label">起(讫)站点</label>
									<select class="form-control" name="startstation" disabled data-key="ZhanDian">
										<option value=""></option>
									</select>
								</div>
							</div>

JAVASCRIP

请求接口数据,数据返回格式如下(示例,id渲染后即为$(selector).val()的值,且id必须唯一,不可重复)

[
    {
        "id": "湖北省",
        "text": "湖北省"
    },
    {
        "id": "河南省",
        "text": "河南省"
    },
    {
        "id": "安徽省",
        "text": "安徽省"
    },
    {
        "id": "海南省",
        "text": "海南省"
    }
]

如果后台数据请求返回如上数据,则不需要经过如下处理,如果后台返回字段名称不是“id"跟“text”,则需如下处理,即可初始化得到省级数据

	function commonSelect({接口请求所需参数},selector){
//此处经过ajax请求处理后得到后台返回数据res=[{DESTNAME:'湖北省'},{DESTNAME:'广东省'...}];
var Arr = [];
 var sel = $(selector);	  sel.html("<option></option>");//此处不可无,将select下拉数据清空为原来的默认空值,否则数据会append上去   
$.each(res,function(i,item){
		    Arr.push({id:item.DESTNAME,text:item.DESTNAME})
		});
		sel.select2({data:Arr,placeholder:'',disabled:false});//默认不可选


文档中提示:为了让placeholder出现,你必须给一个空的<option></option>在select选择器中,这是因为浏览器默认选中第一个option为默认值,如果你对第一个option非空,浏览器将使用第一个值代替placeholder

因此,请注意在HTML代码中,每个select都加入了<option></option>,否则像载入省数据后总显示如下而非我们想要的

JAVASCRIPT中初始化select:需加入placeholder,否则虽然默认空值,但是渲染样式会出错

sel.select2({data:Arr,placeholder:'',disabled:false});//默认不可选

最后,实行级联给每个select添加onchange事件即可,下面以实现省市级联onchange事件示例

$("[name='startprov']").on("change", function () {
		//市级未显示,站场不可出现
		$("[name='startstation']").attr("disabled", true);
		commonSelector({此处为接口调用所需传入参数对象}, "[name='startcity']");
	});

通过以上即可完美的实现可输入可模糊匹配下拉选择的级联选择,总结文档第一!

附加:近期发现这个级联选择省更换一次,市级跟省站重新生成的数据是append上去,请在commonSelect公共函数中加载如今前将select初始化为<select><option></option></select>,代码已在上面更改~

若初始值不为空值,可以如下赋值,如给<input id="search-car" type="text"/>

$('#search-car').html('<option value="' +car + '">' +car + '</option>').trigger("change");		

Bootstrap select2之下拉框可自定义输入和选择 bootstrap select2插件下拉框以及自定义输入的写法 阅读详情

相关推荐

select2新版中文语言包

select2的新版中文语言包。下载后直接引入即可。放在select2.full.min.js后引入语言包。在代码里加入 language: "zh-CN"即可。

select2使用手册

前端插件之Select2使用 - 掘金

Celine 1783

select2 省市区 级联 下拉菜单

select2 下拉搜索 级联 全国省市区的三级联动 谢谢

select2 使用详解

构造函数:2.5.2版本:(具体详见http://select2.github.io/select2/#documentation)参数类型描述Width字符串控制宽度样式属性的Select2容器divminimumInputLengthint最小数量的字符maximumInputLengthint最大数量的字符minimumResultsForSearchInt最小数量的结果maximu...

专注于大数据方向,区块链,前后端,数据可视化,人工智能等领域 3万+

BFD+OSPF+FRR:构建高可用网络的核心铁三角

摘要:VRRP、OSPF、BFD和FRR协同实现网络高可用。VRRP负责网关冗余,OSPF确保路由可达,BFD提供毫秒级故障检测,FRR实现快速路径切换。故障时,BFD立即检测并通知OSPF,FRR在OSPF收敛前切换流量,VRRP完成网关切换(如需)。BFD采用异步模式动态建立,效率最高。该机制确保业务流量无缝切换,提升网络可靠性。

A516988的博客 757

CMOS Sensor的调试经验分享

我这里要介绍的就是CMOS摄像头的一些调试经验。 首先,要认识CMOS摄像头的结构。我们通常拿到的是集成封装好的模组,一般由三个部分组成:镜头、感应器和图像信号处理器构成。一般情况下,集成好的模组我们只看到外面的镜头、接口和封装壳,这种一般是固定焦距的。有些厂商只提供芯片,需要自己安装镜头,镜头要选择合适大小的镜头,如果没有夜视要求的话,最好选择带有红外滤光的镜头,因为一般的sensor都...

camerall 3764

select2 使用教程(简)

用了这么久的Select2插件,也该写篇文章总结总结。当初感觉Select2不是特别好用,但又找不到比它更好的下拉框插件。 在我的印象里Select2有2个版本,最新版本有一些新的特性,并且更新了一下方法参数,比最初版本要好看一些,本文针对新版本。 官网:http://select2.github.io/ 演示: 请选择 由于博客系统的原因,所以只能演示简单

程序员蒋老湿的博客 8万+

【专栏必读】王道考研408数据结构+算法设计与分析万字笔记使用说明及章节导航

各位老铁思维导图在我整理完笔记后会放上去的,我需要根据王道的思维导图重新再做一遍 文章目录一:有关注意事项二:关于专栏三:学习建议四:各专栏导航(各位老铁别催,质量优先)(1)第一章:绪论(2)第二章:线性表(3)第三章:栈和队列第四章:串第五章:二叉树第六章:图 首先感谢王道大大(手动比心),很用心在做了,大家可以看其中两节是否符合胃口 (王道408考研数据结构)第五章树-第三节1:二叉树遍历(先序、中序和后序) (王道408考研数据结构)第五章树-第四节2:平衡二叉树(AVL)及其旋转 一:有.

快乐江湖的博客 5万+

基于jQuery省市县联动插件

基于jQuery省市县联动插 YlChinaArea.js /* 基于jQuery省市县联动插件(2009.04) * 在IE6/IE7/Mozilla 5.0(Firefox 3.0.5)中测试通过 * * * 此插件要求运行在jQuery v1.3 或更高版本上 * 插件改编自RayChou(http://www.raychou.com)的“全国省市区三级联动下拉菜单”插件...

赤山岛 3629

被Cloudflare 5秒盾虐了半个月,终用Python破局:UA+TLS指纹伪装实战,拦截率从42%干到3%

其实5秒盾不难破,难的是摸透它的检测逻辑——它不是“一刀切”地拦截爬虫,而是通过“多维度指纹校验”,判断你是不是“真实用户”。表层:UA和HTTP头要完整、匹配;中层:TLS指纹要和真实浏览器一致(核心);深层:行为要符合人类习惯(请求间隔、JS执行)。这套方案不仅适用于Cloudflare 5秒盾,很多基于指纹检测的反爬系统(如Akamai、Imperva)也适用。2025年的爬虫,早已不是“能爬就行”,而是“爬得稳、不被封”——指纹伪装就是实现这一点的关键。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1852

为什么一个“时间片”能折腾 Linux 十年?

时间片扩展不是抢占调度器的控制权,也不是提升优先级。在“非常短暂、非常确定”的用户态临界区内,避免线程被不必要地抢占。用户态自旋锁(user-space spinlock)无系统调用的极短临界区高并发、低延迟的数据结构操作RSEQ(Restartable Sequences)保护区间一旦线程在临界区被抢占,系统整体性能反而下降。线程 A 拿着一个用户态锁线程 B 被调度上来,开始自旋等这个锁但 A 因为时间片用完,被调度器切走CPU 白白空转,所有线程都在浪费时间。

网络技术联盟站 256

select2中文帮助文档_STM32入门系列-库帮助文档使用

在前面文件夹介绍时,提到了stm32f10x_stdperiph_lib_um.chm文件,此文件是库函数使用帮助文档,可以直接打开如下图。 因为STM32库函数非常多,我们不可能把所有的外设函数都记住,那么这个帮助文档就是学习STM32库函数时所必备的, 所以要学会如何在这个帮助文档内查找函数。使用的库函数全部都在如下图所示列表里。 要查找哪个外设的库函数,只需要找到对应的外设名称...

weixin_39688019的博客 1299

点云统计滤波 (python详细过程版)【2025最新版】

统计滤波python详细过程版,博客长期更新,本文最近更新时间为:2025年1月12日。

点云侠的博客 5639

select2如何设置默认空值

select2如何设置默认空值

jrrfgj的博客 4459

人像抠图 + OpenGL ES 还能这样玩?没想到吧(附带源码)

OpenGL ES 利用抠图算法实现人像留色。

字节流动 3万+

分子动力学仿真软件:LAMMPS_(16).应用案例分析

通过以上四个应用案例,我们详细介绍了如何使用LAMMPS进行不同系统的分子动力学仿真。从简单的液体水仿真到复杂的纳米管仿真,每个案例都包含了详细的步骤说明和代码示例。读者可以通过这些示例实际操作并验证结果,从而更好地理解LAMMPS的功能和使用方法。希望这些案例能够为读者在分子动力学仿真领域的研究和应用提供帮助。

kkchenjj的博客 840

用select2做级联下拉选择

用select2做级联下拉选择 两个下拉框,通过选择年级下拉框进行查询该年级下的所有班级。 可以对select添加onchage事件,监控下拉事件,下拉选择年级,把年级id传入后台查询出该年级下属班级,把班级列表展示到下拉框。 js: $("#grade").change(function () { var grade= $("#grade").val(); $.ajax({ url:base + "/user/grade/list", dataType:

极客神殿 1911

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jQuery-select2 官方文档笔记(一)——基础应用

select2官网:https://select2.org/ 一、上手 1. CDN 2. 单选select 3. 多选select 4. 禁用状态 5. 宽度(width) 6. 关于选项(Options) 7. Placeholders 二、Data Sources 1. select2数据源格式要求 2. 在数据源中标明预选中(&amp;amp;quot;selected&amp;amp;quot;: tru

WWF_HelloWorld 8万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

解决select2插件下拉搜索框,输入拼音能够匹配中文汉字的问题

首先肯定需要引用select2.js:点击打开链接,点击链接,自己新建一个select2.js把链接中的源码复制进去; 然后这里面需要修改的是这个方法: function matcher (params, data) { // Always return the object if there is nothing to compare if ($.trim(param

qq_33142257的博客 2万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ajax+json经典综合案例--省市区街道地址选择

目录 纯jquery方式实现,地址数据来源与苏宁接口 select2插件方式实现,地址数据来源与苏宁接口 纯jquery方式实现,地址数据来源与苏宁接口 首选需要选择省份 当为直辖市时,市不用选择会自动加载,并置灰不可改变。当街道为全区时,处于不可选状态。如下图所示 当市下面的区唯一时,选择市后,区自动加载,并置灰。如下图所示 完整代码如下 : &...

weixin_42133396的博客 789

Vue2级联选择(Cascader)

Vue2以 VueAmazingSelect 选择框为基础封装的级联选择框组件。

Vue Amazing UI(Vue3 + TypeScript + Vite)组件库唯一开发维护者 9548

selet2 vue2实现下拉级联

来源:   功能:起运港 与 目的港 来源于一张表,两个栏位为多对多关系,即1个起运港可以对应多个目的港,1个目的港也可以对应多个起运港。两个栏位下拉选项互为限制条件。 难点:select2组件change事件要能与父级(即Vue)通信,并更新 起运港/目的港 拉下选项。vue不允许子组件更新父组价传入的对象,即只允许数据单向流入(要用$emit。测试可传v-model的input的...

wanglui1990的专栏 770

select标签实现二级联动

【代码】select标签实现二级联动。

1281

select简单2级联动

是否还被游戏服务区的选择而惊叹?是否还被选择框的自动生成而诧异?其实一切都是“纸老虎”! 在这里U can do it! 首先,在select中,value和text的区别在于:value是客户看不见的值;而text是客户可以看见的值。也就是说二级联动(比如常见的选择不同的省份有不同的地区)是在你改变了省份之后,触发事件,传递对应的value给第二级,第二级的select根据你传递的value

SchopenhauerZhang的博客 1万+

select2 手动输入匹配下拉框内容可多选

这里我选择的是select2这个插件。 官网地址:https://select2.org/getting-started/builds-and-modules 主要实现输入框可以有多选下拉框 <div style="width:100%;height:70px;margin-left: 20px;" id ="multipleDiv"> <h2 class="...

任玉 2071

实现两个select之间的两极联动

选择第一个select框中的银行时, 在第二个人select中显示所有的渠道。    思路:  在第一个select框上加一个改变值得事件, 当值改变是触发ajax请求, 或去选中银行下的所有渠道的数据, 然后通过循环加option加在第二个select上。 渠道:

wanghang88 1万+
上一篇: Vue中使用Vuex对象展开运算符写法“...”出错
下一篇: vuex踩坑记-注入store过程中vue文件报错store is not define,state is not define..各种undefine
小简GoGo
博客等级 码龄10年 50粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值