表单验证(添加数据)

表单验证(添加数据)

Demo: 实现表单数据验证
1.导入相关的插件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <base href="/MvcPro/">
    <!--表示样式可以根据设备的大小自适应-->
    <meta name="viewport" content="width=divce-width,initial-scale=1">
    <!--导入jq的js文件-->
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <!-- 导入表单验证的开发包 -->
    <script type="text/javascript" src="js/jquery.validate.min.js"></script>
    <!-- 导入表单验证的js组件 -->
    <!--导入bootstrap的js-->
    <script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
    <!--导入bootstrap的css文件-->
    <link rel="stylesheet" type="text/css"
        href="bootstrap/css/bootstrap.min.css">
    <!-- 导入表单验证 -->
    <script src="pages/verification.js"></script>
</head>

2.定义增加雇员信息的表单

<body>
    <div class="container">
        <div class="row">
            <div id="div1" class="col-md-8">
                <form class="form-horizontal" method="post" id="myform">
                    <fieldset>
                        <legend>添加雇员信息</legend>
                        <div class="form-group" id="enameDiv">
                            <!-- 定义表单提示文字 -->
                            <label class="col-md-3 control-label" for="ename">用户名:</label>
                            <div class="col-md-3">
                                <!-- 定义表单输入组件 -->
                                <input type="text" id="ename" name="ename" class="form-control"
                                    value="smith">
                            </div>
                            <!-- 定义表单错误提示显示元素 -->
                            <div class="col-md-4" id="enameMsg"></div>
                        </div>
                        <div class="form-group" id="jobDiv">
                            <!-- 定义表单提示文字 -->
                            <label class="col-md-3 control-label" for="job">&nbsp;&nbsp;&nbsp;位:</label>
                            <div class="col-md-3">
                                <!-- 定义表单输入组件 -->
                                <input type="text" id="job" name="job" class="form-control"
                                    value="president">
                            </div>
                            <!-- 定义表单错误提示显示元素 -->
                            <div class="col-md-4" id="jobMsg"></div>
                        </div>
                        <div class="form-group" id="salDiv">
                            <!-- 定义表单提示文字 -->
                            <label class="col-md-3 control-label" for="sal">&nbsp;&nbsp;&nbsp;薪:</label>
                            <div class="col-md-3">
                                <!-- 定义表单输入组件 -->
                                <input type="text" id="sal" name="sal" class="form-control"
                                    value="30000">
                            </div>
                            <!-- 定义表单错误提示显示元素 -->
                            <div class="col-md-4" id="salMsg"></div>
                        </div>
                        <div class="form-group" id="hiredateDiv">
                            <!-- 定义表单提示文字 -->
                            <label class="col-md-3 control-label" for="hiredate">入职日期:</label>
                            <div class="col-md-3">
                                <!-- 定义表单输入组件 -->
                                <input type="text" id="hiredate" name="hiredate"
                                    class="form-control" value="2019-10-10">
                            </div>
                            <!-- 定义表单错误提示显示元素 -->
                            <div class="col-md-4" id="hiredateMsg"></div>
                        </div>
                        <div class="form-group" id="deptnoDiv">
                            <!-- 定义表单提示文字 -->
                            <label class="col-md-3 control-label" for="deptno">部门编号:</label>
                            <div class="col-md-3">
                                <!-- 定义表单输入组件 -->
                                <input type="text" id="deptno" name="deptno"
                                    class="form-control" value="20">
                            </div>
                            <!-- 定义表单错误提示显示元素 -->
                            <div class="col-md-4" id="deptnoMsg"></div>
                        </div>
                        <div class="form-group">
                            <div class="col-md-3 col-md-offset-3">
                                <button type="submit" id="submitBtn" class="btn btn-primary">增加</button>
                                <button type="reset" class="btn btn-warning">重置</button>
                            </div>
                        </div>
                    </fieldset>
                </form>
            </div>
        </div>
    </div>
</body>
</html>

3.定义 js 编写验证规则

$(function() {
    $("#myform").validate({//表单验证
        /**
                <label class="col-md-3 control-label" for="ename">用户名:</label>
                    <div class="col-md-3">
                        <input type="text" id="en.ame" name="ename" class="form-control"
                            placeholder="请输入雇员姓名">
                    </div>
                    <div class="col-md-4" id="enameMsg"></div>
                </div>
            */
        //当所有的数据都验证通过之后就自动提交表单
        //控制错误信息的输出
        // $(element):表示出现错误的输入框对象
        //$(element).attr("id").replace(".", "\."):取得输入框的id值(如果有“.”存在则转换为转义字符表示)
        //<div class="form-group" id="nameDiv">
        //error:错误提示信息
        errorPlacement : function(error, element) {
            $("#" + $(element).attr("id").replace(".", "\.") + "Msg").append(error);
        },
        //高亮显示为红色( .has-error)
        //如果输入的数据满足条件则自动执行highlight,
        //element:表示出错的input输入框
        highlight : function(element, errorClass) {
            $(element).fadeOut(2000,function() {//表示元素在2秒之内消失
                $(element).fadeIn(2000, function() {//表示元素再出现
                    $("#" + $(element).attr("id").replace(".","\.") + "Div").attr("class","form-group has-error");
                });
            })
        },
        //数据正确的时候的显示样式(.has-success)
        unhighlight : function(element, errorClass) {
            $(element).fadeOut(1,function() {
                $(element).fadeIn(1,function() {
                        $("#" + $(element).attr("id").replace(".","\.") + "Div").attr("class","form-group has-success");
                });
            })
        },
        errorClass : "text-danger", //控制提示信息的颜色
        //自定义错误信息
        messages:{
            ename:"用户名为5~10个字符",
            job:"职位不能为空",
            sal:"薪资不能为空",
            hiredate:"日期不能为空",
            deptno:"部门编号不能合法",
        },
        //定义验证规则
        rules:{
            ename:{
                required:true,  //不能为空字符串
                rangelength:[5,10]//长度必须是在5~10之间
            },
            job:{
                required:true
            },
            sal:{
                required:true,
            },
            hiredate:{
                required:true  //不能为空
            },
            deptno:{
                required:true,
                digits:true
            }
        },
        /* 校验完毕触发的事件 */
          submitHandler : function() {//提交表单的函数
            //1.序列化表单获取页面的所有表单元素的数据
            var formData = $("#myform").serialize();
            console.log(formData);
            //2.使用ajaxpost提交,向后台提交数据
            $.post("emp/addEmp",formData,function(data){
                 if(data=="1"){
                     alert("添加成功");
                 }else{
                    alert("添加失败");
                     }
                });
              }
        });
})

4.验证通过提交表单
  在控制层增加添加雇员的方法

    //添加数据: 验证表单添加数据
    public void addEmp(HttpServletRequest req, HttpServletResponse resp) throws Exception {
        //将基本信息保存到数据库中
        Emp emp = super.initObj(req, Emp.class);
        if (empservice.addEmp(emp)) {
            super.print(resp, 1);
        } else {
            super.print(resp, 0);
        }
    }
原文地址:https://www.cnblogs.com/yslf/p/10846548.html