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'); } });
原创博客,欢迎讨论,转载请注明出处、链接