• Angular表单验证


    novalidate   去掉html5自带的验证

    ng-minlength    规定输入文本的最小长度

    ng-maxlength    规定输入文本的最大长度

    ng-submit  接收一个方法名,提交表单时触发这个方法

    ng-class 规定一个条件,满足条件后添加指定的类名。语法如下:(error是类名,冒号后面的是条件)

    ng-class="{'error':form.username.$error.required}"

    $pristine  没有被改过的表单

    $dirty  被改过的表单

    $valid  通过验证

    $invalid 没有通过验证

    $error  错误

    语法:

    <!-- 
            这是一个条件,表示检查所有规则
    -->
    form.username.$invalid
    
    <!--
             表示只检查minlength规定的规则
     -->
    form.username.$error.minlength
    <!-- form表示 form表单的form的name名字, username 表示form下某个表单 -->

    当input上规定的验证规则通过后,在input 上写的 ng-model 才会生效。

    ng-if  语句的条件满足显示元素,不满足移除元素

    ng-disabled 同ng-if的用法一样,这个是表示元素可不可用的

    根据以上知识点就可以写一个简单的表单验证了:

    <!DOCTYPE html>
    <html ng-app="myApp">
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <script src="../../Angular/angular.min.js"></script>
        <link rel="stylesheet" href="../../Angular/bootstrap.css"/>
        <style>
            .box
            {
                width:200px;
                margin:50px auto;
            }
    
            p.error
            {
                color:red;
            }
    
            input.error
            {
                border:1px solid red;
            }
        </style>
    </head>
    <body>
    
    <div class="box" ng-controller="myController1">
        <form name="form" ng-submit="formSubmit()" novalidate>
            <h2>注册</h2>
            <div>
                <label>用户名:</label>
                <input type="text"
                       class="form-control"
                       ng-model="userdata.username"
                       name="username"
                       ng-minlength="3"
                       ng-maxlength="5"
                       required
                        />
                <div class="error" ng-show="form.username.$invalid && form.username.$dirty && form.submitted">
                    <p class="error" ng-if="form.username.$error.minlength">最少输入3位</p>
                    <p class="error" ng-if="form.username.$error.maxlength">最多输入5位</p>
                    <p ng-if="form.username.$error.required" ng-class="{'error':form.username.$error.required}">不能为空</p>
                </div>
    
            </div>
            <div>
                <label>密码:</label>
                <input type="password"
                       name="password"
                       ng-model="userdata.password"
                       class="form-control"
                       ng-minlength="6"
                       required
                       ng-class="{'error':form.password.$invalid && form.password.$dirty}"
                        />
                <p class="error"  ng-if="form.password.$invalid && form.password.$dirty">密码格式不正确</p>
            </div>
            <div class="text-center">
                <input type="submit" class="btn btn-danger"/>
            </div>
    
        </form>
    </div>
    
    
    <script>
        angular.module("myApp",[])
                .controller("myController1",function($scope)
                {
                    $scope.userdata = {};
                    $scope.submitted = false;
                    $scope.formSubmit = function()
                    {
                        if($scope.form.$valid)
                        {
                            console.log($scope.userdata);
    
                            //scope可以直接点出from的name属性
                            console.log($scope.form)
                        }
                        else
                        {
                            $scope.form.submitted = true;
                        }
    
                    }
                })
    </script>
    </body>
    </html>
  • 相关阅读:
    DateTime.Compare how to check if a date is less than 30 days old?
    疫情防控记录
    vulnerable process has been exploited and is running
    判断NBIOT的网络信号
    FortiGate 防火墙常用命令
    常见软路由 网卡 和 处理器 对比
    telnet ssh 默认程序关联
    地磁,干扰及校准,椭球拟合
    FortiGate SDWAN 多链路负载均衡
    All In One Runtimes 3.9.2.1 Unattended
  • 原文地址:https://www.cnblogs.com/chefweb/p/6066729.html
Copyright © 2020-2023  润新知