本文主要是介绍select 遇到的坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、select遇到的坑
1、select赋默认值--多选和单选
1.1 单选:$('#id').val( value ); //这里是字符串
1.2 多选:$('#id').val( array ); //这里必须将多个值组成的字符串(或者其他非数组)转化成数组
1.2.1 字符串转数组:str.split(","); // 改变原字符串,不创建新的数组,所以改变原字符串为数组, 只需要 str.split(",");即可
1.2.2 数组转字符串:array.join(","); //创建新的字符串, 不会改变原来的数据,所以如果需要修改原数组为字符串, 需要将array = array.join(",");
1.2.3 类似的splice()方法改变原数据,slice方法创建新的数据,不改变原数据
2、select中没有特定option选项,但是需要将此值设为默认值(业务需求)
2.1 概念性理解:select赋值(或者默认值)是建立在option选项存在的条件下(option中的value),没有某option,则该值无法被赋值
2.2 将该option选项设置为disabled。但是此时disabled的数据,后台无法获取---》可以在提交的时候,将原本disabled的数据变为可编辑
《 $('.disabled').attr("disabled", true) --> $('.disabled').attr("disabled", false) 》
2.3 将option选项display: hidden; //无效!!!
3、使用select2插件,select框中需要设置互斥选项 (例如:当选择全部的时候,其他选项清空只有全部,当选择其他选项时,没有全部这个选项,即互斥。或者说两者之间选择后选项( 后面选择的项替代当前选项))
$('#areaItem').on('change', function() { // select 改变事件var _this = $(this);var codes = _this.val();if (codes[0] === '0') { //0代表全部_this.val(0);_this.trigger('change.select2');}});
这篇关于select 遇到的坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!