角形式验证不适用于表单提交

时间:2015-06-09 13:48:27

标签: angularjs forms validation

我是angularJS的新人。我的表单在提交时没有验证。我使用从凉亭下载的角度验证模块。如何验证提交按钮上的表单?

我使用来自https://github.com/huei90/angular-validation/blob/master/API.md的refrence 我的表格是这样的:

    <div ng-controller="nameController">
        <form name="myForm" ng-submit="submitForm()">
                    <label for="ud_fname"></label>
                    <input
                        type="text"
                        id="ud_fname"
                        name="ud_fname"
                        placeholder="First Name"
                        ng-model="form.ud_fname"
                        valid-method="blur"
                        validator="required"
                        required-error-message="Required"
                    >

                    <label for="ud_lname"></label>
                    <input
                        type="text"
                        id="ud_lname"
                        name="ud_lname"
                        placeholder="Last Name"
                        ng-model="form.ud_lname"
                        valid-method="blur"
                        validator="required"
                        required-error-message="Required"
                    >

                    <input type="submit" value="Add" class="pure-button" />
                    <input type="reset" value="Reset" class="pure-button" />

    </form>

我的控制器是这样的:

app.controller('nameController', function ($scope, $http) {

    // insert record
    $scope.submitForm = function (){
        var url= 'functions/insert.php';
        var data = {
            ud_fname: $scope.form.ud_fname,
            ud_lname : $scope.form.ud_lname,
        };
        console.log(data);
        $http({
            url: url,
            data: data,
            method: 'post'
        }).success(function (response){
           console.log(response);
        });
    };

});

2 个答案:

答案 0 :(得分:1)

您需要在ng-submit&amp;如果submitForm无效form

,请不要致电ng-submit="myForm.$valid && submitForm()"
-std=c++11

答案 1 :(得分:0)

您还需要在控制器中验证表单。此外,如果您将表单(用户)作为参数传递会更好。如果您正在编写单元测试(您应该这样做),那么在这种情况下更容易测试您的方法,因为不会与$ scope耦合。

P.S。将您的代码迁移到controllerAs语法,您不会后悔。

$scope.submitForm = function (user, isValid){
    if (isValid) {
    var url= 'functions/insert.php';
    var data = {
        ud_fname: user.ud_fname,
        ud_lname : user.ud_lname,
    };
    console.log(data);
    $http({
        url: url,
        data: data,
        method: 'post'
    }).success(function (response){
       console.log(response);
    });
}
};

你的表格将成为: -

<form name="myForm" ng-submit="submitForm(form, myForm.$valid)">
.....
</form>