layui之select的option叠加问题解决

小编我在使用layui,在select的地方遇到了坑,select里的值居然无法清空,select里的option还有叠加问题,为了解决这个问题,也达到我的功能,我研究了下,让有同样需求的小伙伴不踩坑,特贴上我的源码:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>layui前端框架select联动</title>
 6     <link rel="stylesheet" href="./layui/css/layui.css">
 7 </head>
 8 <body>
 9 <div id="wrap">
10     <div class="layui-form">
11   <div class="layui-form-item">
12     <label class="layui-form-label">选择框</label>
13     <div class="layui-input-block">
14       <select name="city" lay-verify="required" id="test1"  lay-filter="test1">
15         <option value="">请选择账号类型</option>
16         <option value="0">时间</option>
17         <option value="1">金额</option>
18       </select>
19     </div>
20   </div>
21   <div class="layui-form-item">
22     <label class="layui-form-label">选择框</label>
23     <div class="layui-input-block">
24       <select name="city" lay-verify="required" id="test2"  lay-filter="test2">
25         <option value="">请选择规则名称</option>
26       </select>
27     </div>
28   </div>
29 </div>
30 </body>
31 <script src="./layui/layui.js"></script>
32 <script src="./layui/layer/layer.js"></script>
33 <script src="jquery-1.8.3.min.js"></script>
34 <script>
35   //后台传过来的数据
36   var data=[
37     {unitType:0,ruleName:‘时间规则11‘,amount:1100,money:1100},
38     {unitType:0,ruleName:‘时间规则12‘,amount:1200,money:1200},
39     {unitType:0,ruleName:‘时间规则13‘,amount:1300,money:1300},
40     {unitType:1,ruleName:‘金额规则21‘,amount:2100,money:2100},
41     {unitType:1,ruleName:‘金额规则22‘,amount:2200,money:2200},
42     {unitType:1,ruleName:‘金额规则23‘,amount:2300,money:2300},
43   ];
44 layui.use(‘form‘, function(){
45     var form = layui.form;
46     form.on(‘select(test1)‘, function(obj){
47       if(obj.value==‘‘){
48           return false;
49       }else if(obj.value==0){
50         layui.use(‘form‘, function(){
51           var form = layui.form;
52           $.each(data,function(i,e){
53               var html=‘‘;
54               if(e.unitType==0){
55                 html+=`<option value="${e.unitType}" class="one">${e.ruleName}</option>`;
56               }
57               $(‘#test2‘).find(‘option.two‘).remove();
58               $(‘#test2‘).append(html);
59           })
60           form.render(‘select‘);
61           layui.use(‘form‘, function(){
62               var form = layui.form;
63               form.on(‘select(test2)‘, function(obj){
64                   $(‘#test2 option‘).eq($(‘.one‘).size()+1).nextAll().remove();
65               })
66           })
67         })
68       }else{
69         layui.use(‘form‘, function(){
70           var form = layui.form;
71           $.each(data,function(i,e){
72             var html=‘‘;
73             if(e.unitType==1){
74                 html+=`<option value="${e.unitType}" class="two">${e.ruleName}</option>`;
75             }
76             $(‘#test2‘).find(‘option.one‘).remove();
77             $(‘#test2‘).append(html);
78           })
79           form.render(‘select‘);
80           layui.use(‘form‘, function(){
81             var form = layui.form;
82             form.on(‘select(test2)‘, function(obj){
83               $(‘#test2 option‘).eq($(‘.two‘).size()+1).nextAll().remove();
84             })
85           })
86         })
87       }
88     })
89 });
90 </script>
91 </html>

有疑问的小伙伴可以留言给我,谢谢。

时间: 2024-11-07 19:17:46

layui之select的option叠加问题解决的相关文章

layui 触发 select 下option 被选择事件

1.找到值为某一个的元素 var S0 = 'dd[lay-value='+ level+']'; 2.给该元素注册点击事件  siblings(兄弟节点) $('select[name=\'level\']').siblings("div.layui-form-select").find('dl').find(S0).click(); 原文地址:https://www.cnblogs.com/fdbk/p/11750554.html

layui的select联动 - CSDN博客

要实现联动效果注意两点: 第一要可以监听到select的change事件: 第二异步加载的内容,需要重新渲染后才可以 正常使用. html结构: <form class="layui-form batchinput-form"  action="" id="box-form"> <div class="layui-form-item" ><div class="layui-input-i

layui渲染Select列表

1.引入 <link rel="stylesheet" href="../layui/css/layui.css"> <script src="../layui/layui.js"></script> 2.页面代码 <div class="layui-inline" style="width: 22%;"> <label class="layu

有关attribute和property,以及各自对select中option的影响

这个问题老生常谈,但是直到现在我依旧时常会把它搞混.下面列一些各自的特性.   attribute property 设置方法 option.setAttribute('selected', true) option.getAttribute('selected') option.selected = true dom节点表现 会表现在html节点上.打开控制台,可以看到 <option selected=true></option> 不会表现在html中.打开控制台,孤零零的 :

js 操作select和option

js 操作select和option 1.动态创建select function createSelect(){ var mySelect = document.createElement_x("select");          mySelect.id = "mySelect";           document.body.appendChild(mySelect);      } 2.添加选项option function addOption(){ //根

AngularJS下拉列表select在option动态变化之后多出了一个错误项的问题

场景: Select初始化之后,选中select的某个选项 通过AngularJS更新select的选项 错误写法: HTML(使用ng-repeat) <div ng-app="TestApp"> <div ng-controller="TestAppCtrl"> <label>options变化之后会出错:</label> <select ng-model="selectedSite"&g

jquery为select添加option的代码探讨

这是一道讨论"使用jQuery为select添加option选项的最佳代码方法".分析哪一种的写法是最佳方法.在stackoverflow上众说纷纷,下面来看看有哪些写法. 第一种使用for循环 var selectValues = { "1": "test 1", "2": "test 2" }; for (key in selectValues) { if (typeof (selectValues[k

总结jquery中对select和option的基本操作

jQuery获取Select选择的Text和Value:$("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 var checkText=$("#select_id").find("option:selected").text(); //获取Select选择的Text var checkValue=$("#select_id").val(

select remove option safari 兼容

select 移除某一 option 的 javascript 公司用的代码是 var ddlPrimaryResource = document.getElementById(ddlPrimaryResourceID); ddlPrimaryResource.options[ddlPrimaryResource.selectedIndex].remove(); 这段代码在 chrome 里执行OK ,但是在 safari 里却报错了 TypeError: 'undefined' is not