layui-from

这篇博客详细介绍了layui-form的使用,包括select的动态渲染、事件处理、表单数据的获取与回填、自定义验证以及form提交等内容。重点强调了layui.form.render在不同场景的应用以及lay-filter属性的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LAYUI-FROM

select的渲染

  • 下拉框的值是动态渲染的,需要使用layui.form.render(type, filter)/layui.form.render()重新渲染一次,最好是在方法提里面添加上,每个渲染都是重新渲染一次,确保不会出现遗漏。

事件

  • layui.from.on('event(filter)', function(data){
        //data存在数据
        console.log(data)
    }) 
    
  • event => input/select/button/submit/radio/switch

获取from表单的数据

  • layui.from.val("lay-filter")   
    
  • 注:lay-filter是from标签的属性

回填from表单的数据

  • layui.from.val("lay-filter", {key:value,...})
    

    注:lay-filter是from标签的属性

  • input的name属性的值要和key对应

自定义验证

  • layui.from.verify({
        name:function(val,dom){
            // val --> 值
            // dom --> DOM元素
            if(val != null){
                return "我是文字"
            }
        },
    })
    
  • input/select 的属性是lay-verify=“required”,使用 | 号可以使用多个验证。

  • 已经存在的验证:required(必填项)phone(手机号)email(邮箱)url(网址)number(数字)date(日期)identity(身份证)

from提交

  • layui.from.submit(filter,function(data){
        //data.field存在表单数据
        console.log(data)
        return false;
    }) 
    
  • button按钮必须存在一个属性,lay-submit,不需要值,写上就行。

  • 回调中加上return false; ,可以阻止from提交后的跳转

  1. 以上所述filter,除了from回填和获取,其它皆是自身的lay-filter的值

  2. layui的input和select的动态禁用也是需要重新渲染的,不然会有意想不到的效果。

    ​ 禁用

    • $(`#id`).attr("disabled", state) 
      

      添加背景色,移除只需要改为removClass

    • $(".layui-input").addClass("layui-disabled")
      

简单的使用lyui-from

form表单元素包括:text 文本输入框,password密码输入框,checkbox复选框,radio单选框,file 文件域,submit表单提交action指向的文件,reset表单清空,image图片提交按钮,button按钮,hidden隐藏域。 select option select 实现下拉选 callback 是回调函数 layui.模块   模块可以是layui已经存在的模块,也可以通过layui.define([mods], callback) 来自己自定义模块。 如果想要使用模块首先要做的必然是加载模块,layui.use(['laypage', 'layedit'], function(){}); 接下来使用layui风格控件  其实感觉layui帮我们定义好了CSS和许多JS文本,我们需要做的只是按照layui的命名规范选好样式进而使用就可以了。  layu官方文档的命名规范为: CSS命名规范 class命名前缀:layui,连接符:-,如:class="layui-form" 命名格式一般分为两种: 一:layui-模块名-状态或类型 二:layui-状态或类型 因为有些类并非是某个模块所特有,他们通常会是一些公共类。如: 一(定义按钮的原始风格):class="layui-btnlayui-btn-primary" 二(定义内联块状元素):class="layui-inline" 1 2 3 4 5 6 7 8 9 当然还有前面提到的使用模块的js代码: layui.use(['form', 'layedit', 'laydate'], function(){   var form = layui.form   ,layer = layui.layer   ,layedit = layui.layedit   ,laydate = layui.laydate;   //日期   laydate.render({     elem: '#date'   });   laydate.render({     elem: '#date1'   });   //创建一个编辑器   var editIndex = layedit.build('LAY_demo_editor');   //自定义验证规则   form.verify({     title: function(value){       if(value.length < 5){         return '标题至少得5个字符啊';       }     }     ,pass: [/(.+){6,12}$/, '密码必须6到12位']     ,content: function(value){       layedit.sync(editIndex);     }   });   //监听指定开关   form.on('switch(switchTest)', function(data){     layer.msg('开关checked:'+ (this.checked ? 'true' : 'false'), {       offset: '6px'     });     layer.tips('温馨提示:请注意开关状态的文字可以随意定义,而不仅仅是ON|OFF', data.othis)   });   //监听提交   form.on('submit(demo1)', function(data){     layer.alert(JSON.stringify(data.field), {       title: '最终的提交信息'     })     return false;   }); }); 下面我们按照官方文档的开发规范使用一下form表单的例子       表单集合演示           单行输入框                       验证必填项                             验证手机                                   验证邮箱                                       多规则验证                                   验证日期                                   验证链接                                 验证身份证                       自定义验证                   请填写6到12位密码               范围                           -                                 单行选择框                   </opt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值