AngularJS Form Validation

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Form validation with AngularJS | ng-newsletter</title>
    <!-- I wish we could put these at the bottom -->
    <script src="jquery-2.0.3.min.js"></script>
    <script src="angular.js"></script>
</head>
<body ng-app="validationExampleApp">
<form ng-controller="signupForm1Controller" name="signup_form1" novalidate ng-submit="signupForm()">
    <div class="row">
        <div ng-class="{has-error: dirtyAndInvalid(signup_form1.name)}">
            <label ng-class="{error: dirtyAndInvalid(signup_form1.name)}">Your name</label>
            <input ng-class="{error: dirtyAndInvalid(signup_form1.name)}" type="text" placeholder="Name"
                   name="name" ng-model="signup.name" ng-minlength=3 ng-maxlength=20 required/>

            <div class="error-container" ng-show="signup_form1.name.$dirty && signup_form1.name.$invalid">
                <small class="error" ng-show="signup_form1.name.$error.required">Your name is required.
                </small>
                <small class="error" ng-show="signup_form1.name.$error.minlength">Your name is required to
                    be at least 3 characters
                </small>
                <small class="error" ng-show="signup_form1.name.$error.maxlength">Your name cannot be longer
                    than 20 characters
                </small>
            </div>
        </div>
    </div>

    <div class="row">
        <div class="inputs" ng-class="{error: dirtyAndInvalid(signup_form1.email)}">
            <label ng-class="{error: dirtyAndInvalid(signup_form1.email)}">Your email</label>
            <input ng-class="{error: dirtyAndInvalid(signup_form1.email)}" type="email" placeholder="Email"
                   name="email" ng-model="signup.email" ng-minlength=3 ng-maxlength=20 required/>

            <div class="error-container" ng-show="signup_form1.email.$dirty && signup_form1.email.$invalid">
                <small class="error" ng-show="signup_form1.email.$error.required">Your email is required.
                </small>
                <small class="error" ng-show="signup_form1.email.$error.minlength">Your email is required to
                    be at least 3 characters
                </small>
                <small class="error" ng-show="signup_form1.email.$error.email">That is not a valid email.
                    Please input a valid email.
                </small>
                <small class="error" ng-show="signup_form1.email.$error.maxlength">Your email cannot be
                    longer than 20 characters
                </small>
            </div>
        </div>
    </div>

    <div class="row">
        <div class="inputs" ng-class="{error: dirtyAndInvalid(signup_form1.username)}">
            <label ng-class="{error: dirtyAndInvalid(signup_form1.username)}">Username</label>
            <input ng-class="{error: dirtyAndInvalid(signup_form1.username)}" type="text"
                   placeholder="Desired username" name="username" ng-model="signup.username" ng-minlength=3
                   ng-maxlength=20 ensure-unique="username" ng-required/>

            <div class="error-container"
                 ng-show="signup_form1.username.$dirty && signup_form1.username.$invalid">
                <small class="error" ng-show="signup_form1.username.$error.required">Please input a
                    username
                </small>
                <small class="error" ng-show="signup_form1.username.$error.minlength">Your username is
                    required to be at least 3 characters
                </small>
                <small class="error" ng-show="signup_form1.username.$error.maxlength">Your username cannot
                    be longer than 20 characters
                </small>
                <small class="error" ng-show="signup_form1.username.$error.unique">That username is taken,
                    please try another
                </small>
            </div>
        </div>

        <div class="large-2 columns">
            <button type="submit" ng-disabled="signup_form1.$invalid" class="button radius"
                    style="margin-top: 20px">Submit
            </button>
        </div>
</form>
<script type="text/javascript">
    var app = angular.module("validationExampleApp", []);
    app.controller("signupForm1Controller", ['$scope', function ($scope) {
        $scope.dirtyAndInvalid = function (o) {
            return o.$dirty && o.$invalid;
        }
    }]);
</script>
</body>
</html>
转载自:http://www.ng-newsletter.com/posts/validations.html

注意:该方法本人基于AngularJS即可,在html页面中可以正常使用。但是当本人打算在ng-view的包含界面中进行使用时出现验证非动态提示,ng-show值为永远true,提示信息全部显示的情况。只有一个ng-view的界面是可以正常使用的,但是没有找到其中的原因是什么。还望知道的大手,告知下

你可能感兴趣的:(AngularJS Form Validation)