Select2 用法小贴士

本文详细介绍了Select2控件的初始化配置、动态赋值方法、解决输入焦点问题及值的获取方式,涵盖Ajax动态加载选项、启用函数设置、解决输入框无法获取焦点等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

适用于Select2 4.0.8

初始化:
标签

<div class="form-group col-md-6">
<select id="select2_id" class="form-control" name="select2_name">
</select>
</div>

ajax动态赋值

$.ajax({
		url:rootPath + "/project/select2_ids",
		type:"GET",
		success:function(result){
			//console.log(result);
			if(200==result.code){
				$.each(result.extend.select2_ids, function(index, item) { //select2_id为数组
					var option = $("<option></option>")
							.append(item.engineerItCode).attr("value", item.id);
					option.appendTo(ele);
				});
			}else{
				alert_message(result.code);
			}
		}
	});

启用函数

$("#select2_id").select2({
			placeholder : "Select a domain",
			allowClear : true
		});

动态赋值1

$("#select2_id").val(result.value).select2();
$("#select2_id").val("").select2();

动态赋值2
这里val()中的“[ ]”可以一定程度上保证及时更新

$("#select2_id").val([result.extend.query_result.project]).trigger("change");

解决select2的input框无法获取焦点,无法输入的问题
重写enforceFocus方法,在script中加入下面语句即可:

$.fn.modal.Constructor.prototype.enforceFocus = function() {};

select2使用模态框,搜索框无法输入
bootstrap的modal框中会自带一个属性tabindex="-1"
此属性作用是“设置键盘中的TAB键在控件中的移动顺序,即焦点的顺序。”
通过把tabindex设成1到32767的一个值,就可以把这个控件加入到TAB键的序列中。当浏览者使用TAB键在网页控件中移动时,将首先移动到具有最小tabIndex属性值的控件上,最后在具有最大tabIndex属性值的控件上结束移动。 如果有两个控件的tabIndex属性相同,则以控件在html代码中出现的顺序为准。默认的tabIndex属性为 0 ,将排列在在所有指定tabIndex的控件之后。 而若把tabIndex属性设为一个负值(如tabIndex="-1"),那么这个链接将被排除在TAB键的序列之外,光标也因此无法锚定在输入框中。

<div class="modal fade" id="add_task_modal" tabindex="-1" role="dialog"
		aria-labelledby="exampleModalCenterTitle" aria-hidden="true">

将上面代码中的tabindex="-1"删掉即可

获取Select2控件上的值

	$("#inpt_pjnm_selector").select2('data');
	$("#inpt_pjnm_selector").select2('val');
	$("#inpt_pjnm_selector").val();
	$("#inpt_pjnm_selector option:checked").text();
	$("#inpt_pjnm_selector option:checked").val();
### PostgreSQL 使用技巧与最佳实践 #### 数据库管理的核心要素 高效地进行数据库管理对于发挥PostgreSQL的全部潜力至关重要。这不仅涉及到日常运维任务,如备份恢复、性能调优以及安全加固等方面[^3]。 #### 高效字段拆分方法 当面对需要将单个字段按照特定字符(例如逗号)分割成多个独立记录的情况时,在PostgreSQL中可以利用`string_to_array()`函数实现这一需求。此函数会接收字符串并返回一个数组,之后可以通过 unnest() 将其转换为行集以便进一步处理[^4]。 ```sql SELECT unnest(string_to_array(your_column, ',')) FROM your_table; ``` 上述SQL语句展示了如何使用 `string_to_array` 和 `unnest` 来解析由逗号分隔的列表项,并将其转化为单独的行。 #### 维护表健康状态的最佳做法 Vacuum机制是保持PostgreSQL良好运作不可或缺的一部分;它负责回收已删除元组占用的空间供新插入的数据重用,并更新可见性映射以支持索引仅扫描等功能。定期执行VACUUM命令有助于维持良好的读写效率和减少磁盘空间浪费[^2]。 为了确保vacuum过程更加有效率: - 设置合适的autovacuum参数; - 对于大容量变动频繁的表格考虑增加真空频率; - 定期监控系统活动日志了解自动清理工作的效果。 #### 提升开发体验的小贴士 对于采用Go语言构建的应用程序来说,集成像 GORM 这样的 ORM 库能极大简化同关系型数据库交互的过程。通过几行简单的代码即可完成模型定义、连接配置直至增删改查等一系列操作[^5]。 ```go // 导入必要的包 import ( "gorm.io/driver/postgres" "gorm.io/gorm" ) // 建立到PostgreSQL服务器的链接实例 db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{}) if err != nil { panic("failed to connect database") } defer db.Close() ``` 这段 Go 代码片段说明了怎样快速建立通往 PostgresQL 实例的安全通道,并初始化一个新的 GORM Session。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值