则成の随笔

记录一点日常和工作的收获

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

表单验证在项目中使用还是比较多的,常见的场景我尝试着综合一下,只选取两个例子:

1,简单的表单验证:

    // 表单验证
    $inputForm.validate({
        rules: {
            consignee: "required",
            areaId: "required",
            address: "required",
            zipCode: {
                required:true,
                pattern:/^[0-9]{6}$/
            },
            phone: {
                required:true,
                pattern:/(\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$/
            }
        }
    });

2,表单提交时进行验证:

// 表单验证
    $inputForm.keypress(function(event){
        if(event.keyCode !=13 ){
            $inputForm.validate({
                rules: {
                    productCategoryId: "required",
                    name: "required",
                    sn: {
                        pattern: /^[0-9a-zA-Z_-]+$/,
                        remote: {
                            url: "check_sn.jhtml",
                            cache: false
                        }
                    },
                    price: {
                        required: true,
                        min: 0,
                        decimal: {
                            integer: 12,
                            fraction: ${setting.priceScale}
                        }
                    },
                    electronicPrice: {
                        min: 0,
                        decimal: {
                            integer: 12,
                            fraction: ${setting.priceScale}
                        }
                    },
                    cost: {
                        min: 0,
                        decimal: {
                            integer: 12,
                            fraction: ${setting.priceScale}
                        }
                    },
                    overReadFiguresj: {
                        min: 0,
                        decimal: {
                            integer: 12,
                            fraction: ${setting.priceScale}
                        }
                    },
                    overReadBook: {
                        min: 0,
                        decimal: {
                            integer: 12,
                            fraction: ${setting.priceScale}
                        }
                    },
                    overReadFigure: {
                        min: 0,
                        decimal: {
                            integer: 12,
                            fraction: ${setting.priceScale}
                        }
                    },
                    marketPrice: {
                        min: 0,
                        decimal: {
                            integer: 12,
                            fraction: ${setting.priceScale}
                        }
                    },
                    thcj: {
                        pattern:/^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/
                    },
                    thzj: {
                        pattern:/^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/
                    },
                    grossWeight: {
                        pattern:/^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/
                    },
                    netWeight: {
                        pattern:/^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/
                    },
                    importDate: {
                        pattern: /^[1-2][0-9][0-9][0-9][0-1]{0,1}[0-9][0-3]{0,1}[0-9]$/,
                    },
                    weight: "digits",
                    preEntryNumber: "digits",
                    pieces: "digits",
                    stock: "digits",
                    thhh: "digits",
                    thbb: "digits",
                    //thfd: "digits",
                    //thsl: "digits",
                    thsp: "digits",
                    thbeian: "digits",
                    point: "digits",
                    pages: "digits",
                    words: "digits"
                },
                messages: {
                    sn: {
                        pattern: "${message("admin.validate.illegal")}",
                        remote: "${message("admin.validate.exist")}"
                    }
                },
                submitHandler: function(form) {
                    var isRepeats1 = null;
                    var parameters1 = new Array();
                    $timePriceTable.find(".timePriceValueTr").each(function() {
                        var tdArr = $(this).children();
                        var parameter = tdArr.eq(0).find("span").text();
                        if ($.inArray(parameter, parameters1) >= 0) {
                            $.message("warn", "${message("admin.product.timePriceValueRepeat")}");
                            isRepeats1 = true;
                            return false;
                        } else {
                            parameters1.push(parameter);
                        }
                    });
                    if ($specificationIds.filter(":checked").size() > 0 && $specificationProductTable.find("tr:gt(1)").size() == 0) {
                        $.message("warn", "${message("admin.product.specificationProductRequired")}");
                        return false;
                    } else {
                        var isRepeats0 = false;
                        var parameters0 = new Array();
                        $specificationProductTable.find("tr:gt(1)").each(function() {
                            var parameter = $(this).find("select").serialize();
                            if ($.inArray(parameter, parameters0) >= 0) {
                                $.message("warn", "${message("admin.product.specificationValueRepeat")}");
                                isRepeats0 = true;
                                return false;
                            } else {
                                parameters0.push(parameter);
                            }
                        });
                        if (!isRepeats0&&!isRepeats1) {
                            $specificationProductTable.find("tr:eq(1)").find("select").prop("disabled", true);
                            addCookie("previousProductCategoryId", $productCategoryId.val(), {expires: 24 * 60 * 60});
                            form.submit();
                        }
                    }
                }
            });
        }else{
            return false;
        }
    });

 

posted on 2017-03-23 11:15  江则成  阅读(660)  评论(0编辑  收藏  举报