首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angular表单验证在表单提交时不起作用

angular表单验证在表单提交时不起作用
EN

Stack Overflow用户
提问于 2015-06-09 21:48:27
回答 2查看 1.7K关注 0票数 2

我是新来angularJS的。我的表单不会在提交时生效。我使用从bower下载的angular-validation模块。如何在提交按钮上验证表单?

我使用来自https://github.com/huei90/angular-validation/blob/master/API.md的引用

我的表单是这样的:

代码语言:javascript
复制
    <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>

我的控制器是这样的:

代码语言:javascript
复制
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);
        });
    };

});
EN

回答 2

Stack Overflow用户

发布于 2015-06-09 22:02:50

您需要在ng-submit上进行验证,如果submitForm不是有效的form,则不要调用它

代码语言:javascript
复制
ng-submit="myForm.$valid && submitForm()"
票数 1
EN

Stack Overflow用户

发布于 2015-06-09 22:07:50

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

附言:将你的代码移植到controllerAs语法,你不会后悔的。

代码语言:javascript
复制
$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);
    });
}
};

你的表单将变成:-

代码语言:javascript
复制
<form name="myForm" ng-submit="submitForm(form, myForm.$valid)">
.....
</form>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30733953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档