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>
标签:
JavaEE
, JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能