layui与jquery冲突导致下拉框无法显示的解决方法

1、背景:

  在使用 layui 框架写 jsp 的时候,使用 ajax 传递数据来刷新表单,发现使用 ajax 引用外部的jquery 和 layui 自带的jquery中,可能是 $ 导致select 下拉框中的option 没法在layui中正常使用(即数据传过去了,但是点击下拉框没有任何数据)

2、解决

  查了一下网上的解决方法。有个解决方法是 在layui.js之前引用其他jquery 。但是发现 并没有什么卵用。

  后来发现,ajax传递数据在加载页面之后,导致了导入的option没有在第一时间被layui渲染(当然也有 $ 符号冲突的原因)。

  需要在更新过表单元素后要使用 form.render() 重新渲染。

3、代码

function loadCallClass(){
            $.ajax({
                dataType:"json",    //数据类型为json格式
                contentType: "application/x-www-form-urlencoded; charset=utf-8",
                url:"ope?method=calllist&id="+"${userid}"+"",//servlet文件的名称
                type:"POST",
                success:function(data,textStatus){
                    var $sel = $("#classes");
                    var optionString = "";
                    for ( var i in data) {
                        console.log($sel);
                        $item = $("<option>"+data[i].claname+"</option>");  //添加option
                        $item.val(data[i].claid);  //添加option的value
                        $sel.append($item); //将option添加进select 

                        layui.use([‘layer‘, ‘form‘], function(){
                              var layer = layui.layer
                              ,form = layui.form();
                              form.render(‘select‘);
                        });
                    }
                }
            });
        } 

对应的body代码:

<body onload="loadCallClass()">
    <select name="classes" class="layui-input search_input" id="classes">
    <option value=""></option>
    </select>
</body>

  

原文地址:https://www.cnblogs.com/end-emptiness/p/9186374.html

时间: 2024-09-28 22:12:53

layui与jquery冲突导致下拉框无法显示的解决方法的相关文章

jQuery之双下拉框

双下拉框要实现的效果,实际上就是左边下拉选择框里的内容,可以添加到右边,而右边同理.写了个简单的例子,来说明一下. 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 <!DOCTYPEhtml> <html> <head> <title>jq

jQuery操作select下拉框的text值和value值的方法

1.jquery获取当前选中select的text值 var checkText=$("#slc1").find("option:selected").text(); 2.jquery获取当前选中select的value值 var checkValue=$("#slc1").val(); 3.jquery获取当前选中select的索引值 var index=$("#slc1 ").get(0).selectedIndex; 4

JS/JQuery操作select下拉框

一.js 操作select 下拉框 var selObj = 下拉框对象 1. 移除所有项:selObj.options.length = 0; 2. 移除下拉框中的一项:selObj.options.remove(index); “index”为下拉框选项的索引值,若0索引项移出(自上而下),那么1索引项的索引会变为0,后面的索引依次向前推进 也可利用循环,移除所有项: var length = selObj.options.length; for(var i=length-1;i>=0;i-

easyui combobox下拉框中显示大于号小于号的问题

前两天同事做了个功能,通过勾选下拉框里的值进行列表查询,结果下拉框里的值是“0<t<=2”.“2<t<=5”.“t>5”这样的. combobox是用脚本渲染出来的,里面的data的格式就如这样: [{ID:"01",TEXT:"0<t<=2"},{ID:"02",TEXT:"2<t<=5"},{ID:"03",TEXT:"t>5&quo

jsp下拉框中显示数据库信息&&jsp 下拉框从数据库中如何取值?

jsp下拉框中显示数据库信息 <select> <option value=0>-- 请选择 --</option> <% dao d=new dao();// 这是那个数据库访问的类. List list=d.getData(); for(int i=0;i<list.size();i++) { %> <option value=<%=i+1%>><%=list.get(i)%></option> &l

Jquery制作--美化下拉框

平常我们用的原生select下拉框,大部分样式没办法修改,导致在不同的浏览器里面会跟设计图的风格大相径庭.所以为了能让它美化起来,就用JQ模拟了一个下拉框,可以随意定义样式.原生的下拉框也保留在div里面隐藏着,方便后台开发人员对其进行操作.效果图如下: HTML代码如下: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <tit

jquery Combo Select 下拉框可选可输入插件

Combo Select 是一款友好的 jQuery 下拉框插件,在 PC 浏览器上它能模拟一个简单漂亮的下拉框,在 iPad 等移动设备上又能回退到原生样式.Combo Select 能够对选项进行检索过滤,同时支持键盘控制. 支持浏览器: Safari, Chrome, Firefox, Opera iOS, Android, IE Mobile Internet Explorer IE 8 and above 开源地址:http://www.oschina.net/p/combo-sele

Jquery学习笔记:利用jquery获取select下拉框的值

jquery不是特别熟练,每次使用不常用的就要百度,特地记录下来. 我的下拉框是: <div class="form-group"> <select class="form-control" id="iv_level"> <option value="">店员</option> <option value="">店长</option>

jquery操作select下拉框的多种方法(选中,取值,赋值等)

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