layui的form表单字段校验

layui的form表单字段校验

代码示例

<form class="layui-form">
          <input type="hidden" name="cateId" th:value="${category != null ? category.cateId : 0}">
          <div class="layui-form-item">
              <label for="name" class="layui-form-label">
                  <span class="x-red">*</span>分类名
              </label>
              <div class="layui-input-inline">
                  <input type="text" id="name" name="name" required lay-verify="required" th:value ="${category!= null ? category.name : ''}"
                  class="layui-input">
              </div>
          </div>
          <div class="layui-form-item">
                <label for="name" class="layui-form-label">
                    <span class="x-red">*</span>是否为父母录
                </label>
                <div class="layui-input-inline">
                    <input type="radio"  name="isParent" required="" lay-verify="required" value="1" th:checked="${category != null and category.isParent == 1}"
                           class="layui-input">&nbsp;&nbsp;&nbsp;&nbsp;
                    <input type="radio"  name="isParent" required="" lay-verify="required" value="0" th:checked="${category != null and category.isParent == 0}"
                           class="layui-input"></div>
          </div>
          <div class="layui-form-item">
                <label for="category_id" class="layui-form-label">
                    <span class="x-red">*</span>父母录id
                </label>
                <div class="layui-input-inline">
                    <select name="parentId" id="category_id">
                        <option value="0"></option>
                        <option th:each="parentCate:${parentCateList}" th:value="${parentCate.cateId}" th:text="${parentCate.name}" th:selected="${category!= null and (parentCate.cateId  eq category.parentId)}"></option>
                    </select>
                </div>
          </div>
          <div class="layui-form-item">
                <label class="layui-form-label"></label>
                <button  class="layui-btn" lay-filter="add" lay-submit id="addButton">
                    添加
                </button>
          </div>
      </form>

js代码

layui.use(['form','layer'], function() {
            $ = layui.jquery;
            var form = layui.form,
            layer = layui.layer;
            var nameFlag = 0;//为0表示nameFlag可以注册,为1表示不可以
            //校验目录名的唯一性
            $("#name").on("blur",function () {
                var name = $("#name").val();
                $.ajax({
                    url :'admin/checkCateName',
                    type:'post',
                    data:{
                        name:name,
                    },
                    beforeSend: function(xhr){
                        xhr.setRequestHeader(header, token);
                    },
                    success:function (data) {
                        //console.log(data);
                        if(data.code == 201){//字符串相等
                            nameFlag = 1;
                            layer.msg(data.message, {icon: 7}, 1000);
                        }else{
                            nameFlag = 0;
                        }
                    },
                    error:function (data) {
                        layer.msg(data.message, {icon: 2}, 1000);
                    }
                })
            });
            form.on('submit(add)', function(data){
                alert(111);
                layer.msg(JSON.stringify(data.field));
                    var content = new FormData($("form")[0]);
                    var name = $("#name").val();
                    if(name == ''){
                        nameFlag = 1;
                    }
                    if(nameFlag == 0){
                        $.ajax({
                            url: 'admin/addCate',
                            type: 'post',
                            dataType: 'json',
                            async: false,
                            processData: false,  //tell jQuery not to process the data
                            contentType: false,  //tell jQuery not to set contentType
                            data: content,
                            beforeSend: function(xhr){
                                xhr.setRequestHeader(header, token);
                            },
                            success: function (data) {
                                if(data.code == 200 ){
                                    layer.msg(data.message, {icon: 1}, 1000);
                                }else {
                                    layer.alert(data.message, {icon: 2}, 1000);
                                }
                            }, error: function () {
                                layer.msg("内部错误", {icon: 7},1000);
                            }
                        });
                    }
                    // 获得frame索引
                    var index = parent.layer.getFrameIndex(window.name);
                    //关闭当前frame
                    parent.layer.close(index);
                    //刷新父页面
                    parent.location.reload();
                return false;
            });

        });
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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
Vue3 Element Plus是一套基于Vue3的UI组件库提供了丰富的组件和功能,其中包括了Form单组件。在Element Plus中,可以通过动态校验来实现同一字段的单动态校验。 在Vue3 Element Plus中,可以使用`el-form`组件来创建单,通过`el-form-item`组件来包裹单项。要实现同一字段的单动态校验,可以使用`rules`属性来定义校验规则。 首先,需要在Vue组件中定义单数据和校验规则。例如: ```javascript data() { return { form: { field1: '', field2: '' }, rules: { field1: [ { required: true, message: '字段1不能为空', trigger: 'blur' }, // 其他校验规则 ], field2: [ { required: true, message: '字段2不能为空', trigger: 'blur' }, // 其他校验规则 ] } } } ``` 然后,在模板中使用`el-form`和`el-form-item`组件来创建单,并绑定数据和校验规则。例如: ```html <template> <el-form :model="form" :rules="rules" ref="form"> <el-form-item label="字段1" prop="field1"> <el-input v-model="form.field1"></el-input> </el-form-item> <el-form-item label="字段2" prop="field2"> <el-input v-model="form.field2"></el-input> </el-form-item> </el-form> </template> ``` 最后,可以通过调用`validate`方法来触发校验。例如: ```javascript methods: { submitForm() { this.$refs.form.validate((valid) => { if (valid) { // 校验通过,提交单 } else { // 校验不通过,处理错误信息 } }); } } ``` 这样,就可以实现同一字段的单动态校验了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值