jq validate多表单提交校验

 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>采购计划添加</title>
    <link rel="stylesheet" href="css/jedate.css">
</head>
<style>
    *[hidefocus], input, textarea, a {
        outline: none;
    }

    body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td {
        padding: 0;
        margin: 0;
    }

    fieldset, img, html, body, iframe {
        border: 0;
    }

    table {
        border-collapse: collapse;
        border-spacing: 0;
    }

    li {
        list-style: none;
    }

    i {
        font-style: normal;
    }

    h1, h2, h3, h4, h5, h6 {
        font-size: 100%;
    }

    caption, th {
        font-weight: normal;
        font-style: normal;
        text-align: left;
    }

    em, strong {
        font-weight: bold;
        font-style: normal;
    }

    body, textarea, select, input, pre {
        font-family: arial, microsoft yahei, helvetica, sans-serif;
        font-size: 14px;
        color: #555;
    }

    body {
        background: #f8f8f8;
        line-height: 1.5em;
        -webkit-text-size-adjust: none;
    }

    a, button {
        cursor: pointer;
    }

    textarea {
        resize: none;
        overflow: auto;
    }

    pre {
        white-space: pre-wrap;
    }

    a {
        color: #333;
        text-decoration: none;
    }

    input, select {
        border: 1px solid #ccc;
        border-radius: 2px;
        padding: 2px 0;
        text-align: center;
    }

    select {
        padding: 2px 8px;
    }

    .box {
        width: 1524px;
        overflow: hidden;
        color: #555;
        margin-left: 50px;
    }

    .buy-title {
        font-size: 24px;
        padding: 10px 0 30px;
    }

    .content {
        overflow: hidden;
        box-sizing: border-box;
    }

    .leftbox {
        width: 30%;
        float: left;
        box-sizing: border-box;
        padding-right: 70px;
    }

    .left {
        padding: 30px 0;
        border-bottom: 1px solid #ccc;
    }

    /*.left:last-child{*/
    /*border:none;*/
    /*}*/
    .rightbox {
        width: 70%;
        float: left;
        border-left: 1px solid #aaa;
        box-sizing: border-box;
        padding-left: 100px;
    }

    .right {
        padding: 30px 0;
        border-bottom: 1px solid #ccc;
    }

    /*.right:last-child{*/
    /*border:none;*/
    /*}*/
    .left > p {
        width: 100%;
        padding: 12px 0;
        display: flex;
        align-items: center;
    }

    .left > p:nth-child(odd) {
        background: #eee;
    }

    .left > p span:first-child {
        width: 160px;
        text-align: left;
        display: inline-block;
    }

    .left > p span:last-child {
        display: block;
        width: 227px;
        word-wrap: break-word;
    }

    /*.left > p span:last-child {*/
    /*display: inline-block;*/
    /*}*/
    .left > p span i {
        display: block;
    }

    .right-title {
        overflow: hidden;
        padding-top: 42px;
    }

    .right-title p {
        float: left;
        width: 50%;
        font-weight: bold;
        display: flex;
        align-items: center;
    }

    .right-title > p span:first-child {
        min-width: 200px;
        text-align: left;
        display: inline-block;
        margin-right: 20px;
    }

    .right-title > p span:last-child {
        display: block;
        width: 220px;
        word-wrap: break-word;
    }

    .right-title > p span i {
        display: block;
    }

    .brand {
        padding: 12px 0;
    }

    .brand, .set, .color > div, .check, .numbox, .detail > div {
        display: flex;
        align-items: center;
    }

    .brand > span, .set > span, .color > div > span, .check > span, .numbox > span, .detail > div > span {
        min-width: 160px;
        text-align: left;
        display: inline-block;
    }

    .brand > span > i, .set > span > i, .color > div > span > i, .check > span > i, .numbox > span > i, .detail > div > span > i {
        display: block;
    }

    .brand > select {
        min-width: 200px;
    }

    .check {
        padding: 12px 0;
    }

    .checkbox {
        position: relative;
        top: 2px;
        margin-right: 10px;
        cursor: pointer;
    }

    .info {
        padding: 12px 0;
        overflow: hidden;
        display: none;
    }

    .set {
        float: left;
        width: 50%;
    }

    .color {
        float: left;
        width: 50%;
    }

    .set span {
        width: 124px;
        float: left;
    }

    .set textarea {
        width: 300px;
        height: 100px;
        overflow-y: auto;
        border: 1px solid #ccc;
    }

    .color > div:first-child {
        padding-bottom: 56px;
    }

    .numbox {
        padding: 12px 0;
    }

    .numbox > span {
        width: 120px;
        text-align: left;
        display: inline-block;
    }

    .detail {
        padding: 12px 0;
        overflow: hidden;
    }

    .detail > div {
        width: 50%;
        float: left;
    }

    .detail > div > span:first-child {
        width: 120px;
        display: inline-block;
        text-align: left;
    }

    .sell-button {
        margin-top: 70px;
        width: 100%;
        text-align: center;
    }

    .sell-button a {
        color: white;
        background: #4d90fe;
        display: inline-block;
        border: 0;
        padding: 7px 20px;
        margin: 5px 0;
    }

    .sell-button a:last-child {
        margin-left: 100px;
        background: #ddd;
    }

    .btn-box {
        padding: 50px 0 20px;
        /*text-align: center;*/
    }

    .add {
        margin: 0 100px 0 300px;
        width: 70px;
        border: none;
        background: #4d90fe;
        color: #fff;
        height: 38px;
    }

    .delete {
        width: 70px;
        border: none;
        background: #4d90fe;
        color: #fff;
        height: 38px;
    }

    .error {
        color: red;
    }
    .addgoon {
        margin: 0 100px 0 300px;
        width: 80px;
        border: none;
        background: #4d90fe;
        color: #fff;
        height: 38px;
        padding: 10px;
    }
    .delete {
        width: 80px;
        border: none;
        background: #ccc;
        color: #666;
        height: 38px;
        padding: 10px;
    }
</style>
<body>
<!--<form action="" id="aa">-->
<div class="box">
    <h2 class="buy-title">采购计划添加</h2>
    <div class="content">
        <div class="leftbox">
            <div class="left">
                <p>
                    <span>
                        <i>需求单编号:</i>
                        <i>(requirement number)</i>
                    </span>
                    <span>XXXXXXXX</span>
                </p>
                <p>
                    <span>
                        <i>需求单名称:</i>
                        <i>(requirement name)</i>
                    </span>
                    <span>XXXXXXXX</span>
                </p>
                <p>
                    <span>
                        <i>品牌首字母:</i>
                        <i>(brand initials)</i>
                    </span>
                    <span>XXXXXXXX</span>
                </p>
                <p>
                    <span>
                        <i>品牌:</i>
                        <i>(brand)</i>
                    </span>
                    <span>XXXXXXXX1111111111111111saddddddddddasdasdasdasssssss</span>
                </p>
                <p>
                    <span>
                        <i>型号:</i>
                        <i>(model)</i>
                    </span>
                    <span>XXXXXXXX</span>
                </p>
                <p>
                    <span>
                        <i>版别:</i>
                        <i>(versions)</i>
                    </span>
                    <span>XXXXXXXX</span>
                </p>
                <p>
                    <span>
                        <i>配置:</i>
                        <i>(configuration)</i>
                    </span>
                    <span>XXXXXXXX</span>
                </p>
                <p>
                    <span>
                        <i>外观颜色:</i>
                        <i>(appearance color )</i>
                    </span>
                    <span>XXXXXXXX</span>
                </p>
                <p>
                    <span>
                        <i>内饰颜色:</i>
                        <i>(car interior color)</i>
                    </span>
                    <span>XXXXXXXX</span>
                </p>
                <p>
                    <span>
                        <i>数量:</i>
                        <i>(amount)</i>
                    </span>
                    <span>XXXXXXXX</span>
                </p>
            </div>
        </div>
        <div class="rightbox">

            <div class="right-title">
                <p>
                    <span>
                        <i>采购计划编号:</i>
                        <i>(procurement plan number)</i>
                    </span>
                    <span class="buycode">XXXXXXXX</span>
                </p>
                <p>
                    <span>
                        <i>采购计划名称:</i>
                        <i>(procurement plan name)</i>
                    </span>
                    <input type="text" name="buyname">
                </p>
            </div>
            <form action="" id="rightVli0" class="rightVli">
                <div class="right"><input type="hidden" name="sid" value="46"><input type="hidden" name="bidc" value="0">
                    <div class="brand">
                    <span>
                        <i>品牌 型号 版别:</i>
                        <i>(brand model version)</i>
                    </span>
                        <select id="" name="bmv" class="selectchange">

                            <option value="80" selected="selected">本田 艾力绅 2016款 2.4L 自动 舒适版288</option>

                        </select>
                    </div>
                    <div class="check">
                        <input type="checkbox" class="checkbox">
                        <input type="hidden" name="adjust" value="">
                     <span>
                            <i>调剂(只有调剂后才可修改配置、颜色)</i>
                            <i>adjustment (config and color can be modified when you check adjustment)</i>
                     </span>
                    </div>
                    <div class="info">
                        <div class="set">
                        <span>
                            <i>配置:</i>
                            <i>(configuration)</i>
                        </span>
                            <textarea name="config" readonly="readonly">1</textarea>
                        </div>
                        <div class="color">
                            <div>
                             <span>
                            <i>外观颜色:</i>
                            <i>(appearance color)</i>
                            </span>
                                <input type="text" name="outcolor" class="out_color" value="1" readonly="readonly">
                            </div>
                            <div>
                             <span>
                            <i>内饰颜色:</i>
                            <i>(inner color)</i>
                        </span>
                                <input type="text" name="incolor" class="in_color" value="1" readonly="readonly">
                            </div>
                        </div>
                    </div>
                    <div class="numbox">
                     <span>
                            <i>数量:</i>
                            <i>(amount)</i>
                        </span>
                        <input type="text" name="num" class="num" value="11111111111">
                    </div>
                    <div class="detail">
                        <div>
                         <span>
                            <i>供应方名称:</i>
                            <i>(supplier name)</i>
                        </span>
                            <input type="text" name="supplyname" value="阿发">
                        </div>
                        <div>
                         <span>
                            <i>车价:</i>
                            <i>(car price)</i>
                        </span>
                            <input type="text" name="totalprice" value="11.00">&nbsp;加币(CAD)
                        </div>
                    </div>
                    <div class="detail">
                        <div>
                         <span>
                            <i>货物运送地点:</i>
                            <i>(delivery location)</i>
                        </span>
                            <select id="" name="tostoreid">

                                <option value="12" selected="selected">asdf</option>

                                <option value="13">加拿大啊</option>

                            </select>
                        </div>
                    </div>
                    <div class="detail">
                        <div>
                         <span>
                            <i>约定入库时间:</i>
                            <i>(agreed storage time)</i>
                        </span>
                            <input class="datainp" name="appointtime" type="text" placeholder="请选择时间" readonly="readonly">
                        </div>
                        <div>
                         <span>
                            <i>付款时间:</i>
                            <i>(pay time)</i>
                        </span>
                            <input class="datainp" name="paytime" type="text" placeholder="请选择时间" value="2017-12-31">
                        </div>
                    </div>
                    <div class="detail">
                        <div>
                         <span>
                            <i>4S店杂费:</i>
                            <i>(4S shop charges)</i>
                        </span>
                            <input type="text" name="othercost" value="1.00">
                        </div><div>
                        <span>
                            <i>车辆保险:</i>
                            <i>(car insurance)</i>
                        </span>
                        <input type="text" name="insurance" value="2.00">
                    </div>
                    </div>
                    <div class="detail">
                        <div>
                        <span>
                            <i>消费税:</i>
                            <i>(consumption tax)</i>
                        </span>
                            <input type="text" name="expensetax" value="3.00">
                        </div>
                    </div>
                    <div class="detail">
                        <div>
                         <span>
                            <i>佣金1:</i>
                            <i>(commission1)</i>
                        </span>
                            <input type="text" name="cmsn1" value="4.00">
                        </div><div>
                         <span>
                            <i>佣金2:</i>
                            <i>(commission2)</i>
                        </span>
                        <input type="text" name="cmsn2" value="5.00">
                    </div>
                    </div><div class="detail">
                        <div>
                         <span>
                            <i>佣金3:</i>
                            <i>(commission3)</i>
                        </span>
                            <input type="text" name="cmsn3" value="6.00">
                        </div><div>
                         <span>
                            <i>佣金4:</i>
                            <i>(commission4)</i>
                        </span>
                        <input type="text" name="cmsn4" value="7.00">
                    </div>
                    </div><div class="detail">
                        <div>
                         <span>
                            <i>佣金5:</i>
                            <i>(commission5)</i>
                        </span>
                            <input type="text" name="cmsn5" value="8.00">
                        </div>
                    </div><div class="detail">
                        <div>
                         <span>
                            <i>其他费用1:</i>
                            <i>(other cost1)</i>
                        </span>
                            <input type="text" name="other1" value="9.00">
                        </div><div>
                         <span>
                            <i>其他费用2:</i>
                            <i>(other cost2)</i>
                        </span>
                        <input type="text" name="other2" value="10.00">
                    </div>
                    </div><div class="detail">
                        <div>
                         <span>
                            <i>其他费用3:</i>
                            <i>(other cost3)</i>
                        </span>
                            <input type="text" name="other3" value="11.00">
                        </div><div>
                         <span>
                            <i>其他费用4:</i>
                            <i>(other cost4)</i>
                        </span>
                        <input type="text" name="other4" value="12.00">
                    </div>
                    </div><div class="detail">
                        <div>
                         <span>
                            <i>其他费用5:</i>
                            <i>(other cost5)</i>
                        </span>
                            <input type="text" name="other5" value="13.00">
                        </div>
                    </div><div class="detail">
                        <div>
                         <span>
                            <i>运输费用:</i>
                            <i>(transport cost)</i>
                        </span>
                            <input type="text" name="transcost" value="14.00">
                        </div><div>
                         <span>
                            <i>运输方名称:</i>
                            <i>(transport name)</i>
                        </span>
                        <input type="text" name="transname" value="15啊">
                    </div>
                    </div>
                    <div class="btn-box">
                        <a class="addgoon">
                            <i>继续添加</i>
                            <i>add</i>
                        </a>

                        <a class="delete">
                            <i>删除</i>
                            <i>delete</i>
                        </a></div></div>
            </form>
        </div>

        <!--<p id='submit2'>验证</p>-->
    </div>
    <div class="sell-button">
        <a href="javascript:;" id="submit2">
            提交(submit)
        </a>
        <a href="#">取消(cancel)</a>
    </div>
    <input type="submit" value="ss" id='submit' >

</div>
<!--</form>-->
<input onclick="testShow(this)" readonly placeholder="请选择时间">
</body>
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/jquery.jedate.js"></script>
<script src="js/jquery.validate.js"></script>
<script>
    function testShow(elem){
        $.jeDate(elem,{
            format: "YYYY-MM-DD",
            isTime: false,
            isClear: false,
            maxDate: $.nowDate({DD:"0"})
        });
    }
    var date=new Date();
    var year=date.getFullYear();
    var month=date.getMonth()+1;
    var day=date.getDate();
    if(month<10){
        month="0"+month;
    }
    if(day<10){
        day="0"+day;
    }
console.log(year+"-"+month+"-"+day)
    $(".datainp").jeDate({
        format: "YYYY-MM-DD",
        isTime: false,
        isClear: false,
        maxDate: year+"-"+month+"-"+day
//        position:[205,768]
    });
    $(document).delegate('.checkbox', 'click', function () {
        if ($(this).prop('checked')) {
            $(this).parent().siblings('.info').show();
        } else {
            $(this).parent().siblings('.info').find('textarea,input').val("");
            $(this).parent().siblings('.info').hide();
        }
    });
    $(document).delegate('.addgoon', 'click', function () {
        var parent = $(this).parent().parent().parent().clone();
        parent.find('label').remove();
        parent.find('input,textarea').css("color", "#555").val("");
        parent.find('.checkbox').prop('checked', false);
        parent.find('.info').hide();
        parent.appendTo($('.rightbox'));
        var right = $(".rightVli");
        for (var i = 0; i < right.length; i++) {
            right.eq(i).prop("id", "rightVli" + i);
        }
        $(".datainp").jeDate({
            format: "YYYY-MM-DD",
            isTime: false,
            isClear: false,
            minDate: "2014-09-19 00:00:00"
        });
    });
    $(document).delegate('.delete', 'click', function () {
        $(this).parent().parent().parent().remove();
        var right = $(".rightVli");
        for (var i = 0; i < right.length; i++) {
            right.eq(i).prop("id", "rightVli" + i);
        }
    });
//    不为空
    jQuery.validator.addMethod("isnull", function(value, element) {
        return this.optional(element) || $.trim(value);
    }, "请输入合法字符");
//    配置
    jQuery.validator.addMethod("isconfig", function(value, element) {
        return this.optional(element) || $.trim(value).length<500;
    }, "最多输入500位字符");
//    外观配置
    jQuery.validator.addMethod("isoutlook", function(value, element) {
        return this.optional(element) || $.trim(value).length<50;
    }, "最多输入50位字符");
//    数量
    jQuery.validator.addMethod("isnum", function(value, element) {
      return this.optional(element) || /^[1-9][0-9]*$/.test(value);
    }, "请填写大于0的整数");
//    车价
    jQuery.validator.addMethod("istotalprice", function(value, element) {
        return this.optional(element) || /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/.test(value);
    }, "请填写正确的金额");
    function JqValidate(id) {
        return $(id).validate({
            rules: {
                config:{
                    required: true,
                    isconfig:true,
                    isnull:true
                },
                outcolor:{
                    required: true,
                    isoutlook: true,
                    isnull:true
                },
                incolor:{
                    required: true,
                    isoutlook: true,
                    isnull:true
                },
                num: {
                    required: true,
                    isnum: true,
                    maxlength:11
                },
                supplyname: {
                    required: true,
                    isoutlook: true,
                    isnull:true
                },
                totalprice: {
                    required: true,
                    maxlength: 11,
                    istotalprice:true
                },
                othercost: {
                    maxlength: 11,
                    istotalprice:true
                },
                insurance: {
                    maxlength: 11,
                    istotalprice:true
                },
                expensetax: {
                    maxlength: 11,
                    istotalprice:true
                },
                cmsn1: {
                    maxlength: 11,
                    istotalprice:true
                },
                cmsn2: {
                    maxlength: 11,
                    istotalprice:true
                },
                cmsn3: {
                    maxlength: 11,
                    istotalprice:true
                },
                cmsn4: {
                    maxlength: 11,
                    istotalprice:true
                },
                cmsn5: {
                    maxlength: 11,
                    istotalprice:true
                },
                other1: {
                    maxlength: 11,
                    istotalprice:true
                },
                other2: {
                    maxlength: 11,
                    istotalprice:true
                },
                other3: {
                    maxlength: 11,
                    istotalprice:true
                },
                other4: {
                    maxlength: 11,
                    istotalprice:true
                },
                other5: {
                    maxlength: 11,
                    istotalprice:true
                },
                transcost: {
                    maxlength: 11,
                    istotalprice:true
                },
                transname: {
                    maxlength: 50,
                    isnull:true,
                    isoutlook: true,
                }
            },
            messages: {
                config:{
                    required: "请输入配置",
                    maxlength: "最多输入500位字符"
                },
                outcolor:{
                    required: "请输入外观颜色",
                    maxlength: "最多输入50位字符"
                },
                incolor:{
                    required: "请输入内饰颜色",
                    maxlength: "最多输入50位字符"
                },
                num: {
                    required: "请输入数量",
                    maxlength: "最多输入11位数字"
                },
                supplyname: {
                    required: "请输入供应商",
                    maxlength: "最多输入50位字符"
                },
                totalprice: {
                    required: "请输入车价",
                    maxlength: "最多输入11位数字"
                },
                transname: {
                    maxlength:"最多输入50位字符"
                }
            }
        })
    }
    $("#submit2").click(function () {
        var val=$('.right-title').find("input[name='buyname']").val();
        if($.trim(val)==""){
            alert("请输入采购计划名称");
            $('.right-title').find("input[name='buyname']").focus();
            return false;
        }
        else if(val.length>100){
            alert("最多输入100位字符");
            $('.right-title').find("input[name='buyname']").focus();
            return false;
        }
        var k = 0;
        var right = $('.rightVli');
        for (var i = 0; i < right.length; i++) {
            if (JqValidate("#rightVli" + i).form()) {
                k++;
                if (k == right.length) {
                    var ss="";
                    $.each(right,function(){
                        for(var j=0;j<$(this).find("div>div input").length;j++){
                            ss=ss+$(this).find("div>div input").eq(j).attr('name')+"="+ $.trim($(this).find("div>div input").eq(j).val())+"&";
                        }
                        ss=ss+"config="+$.trim($(this).find("textarea[name='config']").val())+"&bmv="+$(this).find("select[name='bmv']").val()+"&tostoreid="+$(this).find("select[name='tostoreid']").val()+"&";
                    });
                    ss=ss+"buycode="+$('.buycode').html()+"&buyname="+$.trim($('.right-title').find("input[name='buyname']").val());
                    console.log(ss);
                    $.ajax({
                        url: '',
                        data: ss,
                        type: 'get',
                        datatype: 'json',
                        success: function () {
                            alert("提交成功");
                        }
                    });
                }
            }
        }
    });
</script>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值