textarea必填验证必须用lay-verify="required",且lay-reqtext仅在此时生效;属性须写在textarea标签内,name不可省略,富文本需同步内容,动态添加需调form.render('textarea')。

textarea 必填验证必须用 lay-verify="required"
直接写 Ajax 加载后追加的 常见原因是值为空格或换行符,
真正容易被忽略的是:富文本场景下,required 属性没用——Layui 完全不读原生 required,只认 lay-verify="required"。这个属性必须加在 标签上,不是外层 。
lay-verify="required" 是唯一触发必填校验的方式,其他写法(如 required="required")纯属无效lay-verify="required|email" 这类多规则,空值时只报“必填”提示,email 规则根本不会执行name 属性不能省,Layui 验证靠它定位字段,没 name 就等于没注册lay-reqtext 自定义提示文字怎么生效
lay-reqtext 只对 lay-verify="required" 生效,且必须写在 标签里,写在别的地方全白搭。
、 —— 全部失效
layedit),得先调 layedit.sync(index) 同步内容,否则验证的是空字符串,lay-reqtext 提示照样弹出来动态插入的 textarea 怎么让验证生效
,即使写了 lay-verify="required",提交时也不校验——Layui 初始化时没扫描到它。
form.render('textarea'),不能只写 form.render()(会重载全部组件,可能破坏 radio 或 select 状态)form.render('input')、form.render('select')、form.render('textarea')
form.render() 之后再补 lay-reqtext 属性——得在插入前就带好所有属性,或者插入后立即 set + render为什么输入了内容还提示“未填写”
required 规则默认不做 .trim(),只要字符串非空就放过,但用户感知是“明明输了却报错”。
form.verify({ notEmpty: function(value) { return value.trim() ? true : '此项不能为空'; } }),然后 lay-verify="notEmpty"
return true,Layui 只把 false 或字符串当失败;return undefined 或 return true 都算通过layedit.sync(),验证的永远是初始空值,不是编辑器里的真实内容lay-reqtext 和自定义规则都作用于同步前的 textarea 值,不是编辑器实时内容。同步动作必须在验证触发前完成,而 Layui 默认的验证时机(submit 时)并不自动包含这步。











