无法阻止角度js中的提交表单?

时间:2017-01-24 03:09:09

标签: angularjs validation

我尝试了许多解决方案,以防止在使用

进行验证后提交表单
ng-submit="login_form.$valid"

但它仍然提交。 这是我的代码。 http://codepen.io/ryantran/pen/bgWXjy

2 个答案:

答案 0 :(得分:6)

因为您已在表单上定义了操作和方法,所以无论您在角度处做什么,它都会提交。

如果您想使用angular处理验证,则必须删除它们并使用$ http或$ resource在您的提交方法中调用服务器。

答案 1 :(得分:-1)

当你点击提交按钮时,

ng-submit会调用一个函数来调用。你使用的方式不起作用。为了使它工作,您可以像以下一样使用它:

resources {
    filter {
        return it.exists()
    }
}

使用 loginForm。$有效? login():''“这个条件确保只有在表单有效时才会调用你的函数。

在控制器中:

  <form name="loginForm" novalidate ng-submit="loginForm.$valid ? login() : ''">

使用您的所有http请求。确保注入$ http。 在authService make函数如下:

 $scope.login = function () {
    if ($scope.loginForm.$valid) { //don't need to check validation here again because condition in ng-submit is doing this for you, only to show.
    authService.login(params).then(function(response) {
          //do what ever you want to, with you response
        }, function(error) {
           // do something
            }
        });
    }

serviceURI是我将所有api url保存为常量的地方。