layui下拉框怎么设置默认选中项

小强吖_3074

小强吖_3074

2026-08-23

899人浏览

原创

layui select 必须用 form.val() 设置值并立即调用 form.render('select') 同步ui,仅操作dom value 或 selected 属性无效;多选需传数组,动态插入option后须重新 val() + render。

layui下拉框怎么设置默认选中项

form.val() + form.render('select') 是唯一可靠路径

只写 $("#mySelect").val("2") 不会改变界面上的高亮状态,因为 Layui 的 select 是渲染后的 UI 组件,DOM 的 value 和视觉状态是分离的。必须显式通知 Layui 同步一次。

  • form.val('filterName', { 'mySelect': '2' }) 或 $("#mySelect").val("2") 设置原始 value
  • 紧接着调用 form.render('select') —— 这才是让下拉框真正“动起来”的关键一步
  • 如果 select 有 lay-filter="city",推荐传第二个参数:form.render('select', 'city'),避免重绘整个表单影响性能
  • 确保代码在 layui.use(['form'], function(){}) 内执行,且 DOM 已就绪(比如放在 $(document).ready() 或 form 初始化之后)

动态插入 option 后默认选中第一项,不能靠 selected 属性

HTML 里写 <option value="1" selected>北京</option> 只对纯静态页面有效;Layui 渲染后,selected 属性会被忽略。异步加载完数据再插入,必须手动控制。

深蓝色网站后台管理系统layui框架模板-AdminPro
深蓝色网站后台管理系统layui框架模板-AdminPro

一款深蓝色网站后台管理系统layui框架模板

下载
  • 拼接 HTML 字符串时,给第一个 <option></option> 加上 selected(不是 selected="selected")
  • 用 $('#mySelect').html(htmlStr) 替换全部内容(或 append() 后确保插入完成)
  • 立刻执行 $("#mySelect").val(firstValue)(如 "1"),再调 form.render('select')
  • 别信 selectedIndex = 0 或直接改原生 DOM 的 selected 属性——Layui 不认这个

value="0" 的选项默认不被识别,得手动打标再 render

后端返回 data.status === 0,执行 $('#status').val(0) 没反应?不是 JS 失效,是 Layui 渲染逻辑跳过了字符串 "0" 和空字符串的匹配。

  • 正确做法:先用 jQuery 定位并设属性:$('#status').find('option[value="0"]').prop('selected', true)
  • 再调 form.render('select') 同步 UI
  • 注意 HTML 中写的是 value="0"(带引号的字符串),不是 value=0(无引号会被解析为空)
  • 动态插入时,确保 <option value="0">未启用</option> 真的进了 DOM,别漏掉

多选下拉框(multiple)要传数组,且必须用 form.val()

多选场景下,$("#multiSelect").val("a") 会静默失败;Layui 要求传数组,且只能通过 form.val() 设置,不能只操作原生 DOM。

  • 设置值:使用 form.val('filterName', { 'multiSelect': ['a', 'b'] })
  • 不要用 $("#multiSelect").val(['a', 'b']) —— 它可能触发原生行为但不通知 Layui
  • 若没配 lay-filter,可用 form.val(null, { 'multiSelect': [...] }) 按 name 匹配
  • 插入新 <option></option> 后,仍需重新 form.val() + form.render('select'),否则新增项不会被选中
Layui 的 select 默认不自动响应任何 DOM 变更,所有“看起来该生效”的操作,背后都缺不了 form.render('select') 这一步。最容易被忽略的,是它必须紧接在 value 设置之后、且不能被包裹在异步回调的竞态里——比如 AJAX 的 success 里刚插入 DOM 就立刻 val(),而没确认插入是否完成。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2263

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

4883

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

5990

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

5478

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

783

5

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

80

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

80

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

40

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

40

26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 12.7万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 10.9万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习