关于layui的前端数据验证

这是一个关于使用layui前端框架进行表单验证和提交的示例代码。代码包括了对不同类型的输入数据(如标题、满减额、优惠额、折扣等)的验证规则,并在提交时展示表单数据。同时,代码还通过AJAX动态加载了类型选择的下拉选项。

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

 代码有点长,这段代码主要是在学习中layui的前端验证。初学者的代码如果有错误可以私聊我。如果觉得代码长可以看第二段代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/layui-v2.6.8/layui/css/layui.css">
    <script src="/static/layui-v2.6.8/layui/layui.js"></script>
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<form class="layui-form" action="">
    <div class="layui-form-item">
        <label class="layui-form-label">类型</label>
        <div class="layui-input-block" style="width: 500px;">
            <select name="type" lay-verify="type">
            </select>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">标题</label>
        <div class="layui-input-block">
            <input type="text" name="title"  lay-verify="title"  autocomplete="off"
                   class="layui-input title">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">描述</label>
        <div class="layui-input-block">
            <input type="text" name="desct"  autocomplete="off"
                   class="layui-input">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">满减额</label>
        <div class="layui-input-block">
            <input type="text" name="money_off"  lay-verify="money_off" autocomplete="off"
                   class="layui-input money_off">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">优惠额</label>
        <div class="layui-input-block">
            <input type="text" name="subtract" lay-verify="subtract" autocomplete="off"
                   class="layui-input subtract">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">折扣</label>
        <div class="layui-input-block">
            <input type="text" name="discount" lay-verify="discount" autocomplete="off"
                   class="layui-input discount">
        </div>
    </div>
    <div class="layui-form-item">
        <div class="layui-input-block">
            <button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
        </div>
    </div>
</form>

<script>
    //Demo
    layui.use('form', function () {
        var form = layui.form;
        form.verify({
            type:function (value){
                if(value==1){
                    var title = $('.title').val()
                    var money_off = Number($('.money_off').val())
                    var subtract = Number($('.subtract').val())
                    console.log(money_off)
                    if(title.length==0){
                        return '标题不能为空';
                    }
                    if(money_off==0){
                        return '满减额不能为空';
                    }
                    if(String(money_off)=='NaN'){
                        return '满减额必须为整数或者小数';
                    }
                    if(subtract==0){
                        return '优惠额不能为空';
                    }
                    if(String(subtract)=='NaN'){
                        return '优惠额必须为整数或者小数';
                    }
                }
                if(value==2){
                    var title = $('.title').val()
                    var discount = Number($('.discount').val())
                    if(title.length==0){
                        return '标题不能为空';
                    }
                    if(String(discount)=='NaN'){
                        return '折扣必须为整数或者小数';
                    }
                    if(discount==0){
                        return '折扣不能为空';
                    }
                }
                if(value==3){
                    var title = $('.title').val()
                    var subtract = Number($('.subtract').val())
                    if(title.length==0){
                        return '标题不能为空';
                    }
                    if(subtract==0){
                        return '优惠额不能为空';
                    }
                    if(String(subtract)=='NaN'){
                        return '优惠额必须为整数或者小数';
                    }
                }
                if(value==4){
                    var title = $('.title').val()
                    var money_off = Number($('.money_off').val())
                    var discount = Number($('.discount').val())
                    if(title.length==0){
                        return '标题不能为空';
                    }
                    if(money_off==0){
                        return '满减额不能为空';
                    }
                    if(discount==0){
                        return '折扣不能为空';
                    }
                    if(String(money_off)=='NaN'){
                        return '满减额必须为整数或者小数';
                    }
                    if(String(discount)=='NaN'){
                        return '折扣必须为整数或者小数';
                    }
                }
            }
            ,content: function(value){
                layedit.sync(editIndex);
            }
        });
        //监听提交
        form.on('submit(formDemo)', function (data) {
            layer.msg(JSON.stringify(data.field));
            return false;
        });
    });
</script>
</body>
</html>
<script>
    $.ajax({
        url: "{:url('admin/Type/index')}"
        , type: "GET"
        , success: function (res) {
            console.log(res)
            var data = res.data
            var str = '<option value="">请选择</option>';
            $(data).each(function (k, v) {
                str += '<option value="' + v.id + '">' + v.t_name + '</option>'
            })
            console.log(str)
            $('select').append(str)
            layui.form.render("select");
        }
    })

</script>

关键性代码如下

<form class="layui-form" action="">
    <div class="layui-form-item">
        <label class="layui-form-label">类型</label>
        <div class="layui-input-block" style="width: 500px;">
            <select name="type" lay-verify="type">
            </select>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">标题</label>
        <div class="layui-input-block">
            <input type="text" name="title"  lay-verify="title"  autocomplete="off"
                   class="layui-input title">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">描述</label>
        <div class="layui-input-block">
            <input type="text" name="desct"  autocomplete="off"
                   class="layui-input">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">满减额</label>
        <div class="layui-input-block">
            <input type="text" name="money_off"  lay-verify="money_off" autocomplete="off"
                   class="layui-input money_off">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">优惠额</label>
        <div class="layui-input-block">
            <input type="text" name="subtract" lay-verify="subtract" autocomplete="off"
                   class="layui-input subtract">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">折扣</label>
        <div class="layui-input-block">
            <input type="text" name="discount" lay-verify="discount" autocomplete="off"
                   class="layui-input discount">
        </div>
    </div>
    <div class="layui-form-item">
        <div class="layui-input-block">
            <button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
        </div>
    </div>
</form>

<script>
    //Demo
    layui.use('form', function () {
        var form = layui.form;
        form.verify({
            type:function (value){
                if(value==1){
                    var title = $('.title').val()
                    var money_off = Number($('.money_off').val())
                    var subtract = Number($('.subtract').val())
                    console.log(money_off)
                    if(title.length==0){
                        return '标题不能为空';
                    }
                    if(money_off==0){
                        return '满减额不能为空';
                    }
                    if(String(money_off)=='NaN'){
                        return '满减额必须为整数或者小数';
                    }
                    if(subtract==0){
                        return '优惠额不能为空';
                    }
                    if(String(subtract)=='NaN'){
                        return '优惠额必须为整数或者小数';
                    }
                }
                if(value==2){
                    var title = $('.title').val()
                    var discount = Number($('.discount').val())
                    if(title.length==0){
                        return '标题不能为空';
                    }
                    if(String(discount)=='NaN'){
                        return '折扣必须为整数或者小数';
                    }
                    if(discount==0){
                        return '折扣不能为空';
                    }
                }
                if(value==3){
                    var title = $('.title').val()
                    var subtract = Number($('.subtract').val())
                    if(title.length==0){
                        return '标题不能为空';
                    }
                    if(subtract==0){
                        return '优惠额不能为空';
                    }
                    if(String(subtract)=='NaN'){
                        return '优惠额必须为整数或者小数';
                    }
                }
                if(value==4){
                    var title = $('.title').val()
                    var money_off = Number($('.money_off').val())
                    var discount = Number($('.discount').val())
                    if(title.length==0){
                        return '标题不能为空';
                    }
                    if(money_off==0){
                        return '满减额不能为空';
                    }
                    if(discount==0){
                        return '折扣不能为空';
                    }
                    if(String(money_off)=='NaN'){
                        return '满减额必须为整数或者小数';
                    }
                    if(String(discount)=='NaN'){
                        return '折扣必须为整数或者小数';
                    }
                }
            }
            ,content: function(value){
                layedit.sync(editIndex);
            }
        });
        //监听提交
        form.on('submit(formDemo)', function (data) {
            layer.msg(JSON.stringify(data.field));
            return false;
        });
    });
</script>

主要的代码实现如下

//表单中的lay-verify="type"属性必须有
//下面这段代码主要是对值进行判断。
 layui.use('form', function () {
        var form = layui.form;
        form.verify({
            type:function (value){
                if(value==1){
                    var title = $('.title').val()
                    var money_off = Number($('.money_off').val())
                    var subtract = Number($('.subtract').val())
                    console.log(money_off)
                    if(title.length==0){
                        return '标题不能为空';
                    }
                    if(money_off==0){
                        return '满减额不能为空';
                    }
                    if(String(money_off)=='NaN'){
                        return '满减额必须为整数或者小数';
                    }
                    if(subtract==0){
                        return '优惠额不能为空';
                    }
                    if(String(subtract)=='NaN'){
                        return '优惠额必须为整数或者小数';
                    }
                }
                if(value==2){
                    var title = $('.title').val()
                    var discount = Number($('.discount').val())
                    if(title.length==0){
                        return '标题不能为空';
                    }
                    if(String(discount)=='NaN'){
                        return '折扣必须为整数或者小数';
                    }
                    if(discount==0){
                        return '折扣不能为空';
                    }
                }
                if(value==3){
                    var title = $('.title').val()
                    var subtract = Number($('.subtract').val())
                    if(title.length==0){
                        return '标题不能为空';
                    }
                    if(subtract==0){
                        return '优惠额不能为空';
                    }
                    if(String(subtract)=='NaN'){
                        return '优惠额必须为整数或者小数';
                    }
                }
                if(value==4){
                    var title = $('.title').val()
                    var money_off = Number($('.money_off').val())
                    var discount = Number($('.discount').val())
                    if(title.length==0){
                        return '标题不能为空';
                    }
                    if(money_off==0){
                        return '满减额不能为空';
                    }
                    if(discount==0){
                        return '折扣不能为空';
                    }
                    if(String(money_off)=='NaN'){
                        return '满减额必须为整数或者小数';
                    }
                    if(String(discount)=='NaN'){
                        return '折扣必须为整数或者小数';
                    }
                }
            }
            ,content: function(value){
                layedit.sync(editIndex);
            }
        });
//下面这段为提交代码。如果使用请参考文章第一段代码
form.on('submit(formDemo)', function (data) {
            layer.msg(JSON.stringify(data.field));
            return false;
        });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值