控制器中的 angular.js 表单验证

don*_*ame 2 angularjs

我得到了这个表格:

<form ng-controller="SomeCtrl as some" name="product[[product.id]]" ng-submit="some.addToCart(something, product[[product.id]].$valid)" novalidate></form>
Run Code Online (Sandbox Code Playgroud)

然后 html 看起来像:

<form ng-controller="SomeCtrl as some" name="product1" ng-submit="some.addToCart(something, product1.$valid)" novalidate=""></form>
Run Code Online (Sandbox Code Playgroud)

控制器:

this.addToCart = function(something, isValid) {
    console.log(isValid);
}
Run Code Online (Sandbox Code Playgroud)

isValid 总是undefined。如何检测表单在控制器中是否有效?

tpi*_*pie 5

Demo 如果你想在控制器中做你自己的验证,你不想使用 ng-submit 因为它会阻止表单的提交,如果它无效。

只需在 ng-click 中使用带有检查表单条件的功能的常规按钮即可。

控制器:

  $scope.submit = function() {
    console.log($scope.myForm.$valid)
  }
Run Code Online (Sandbox Code Playgroud)

HTML

<form name="myForm">
  <input ng-model="myForm.text" type="text" required />
  <button ng-click="submit()">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)