如何在AngularJS中检查所有字段是否为空

rur96b6h  于 11个月前  发布在  Angular
关注(0)|答案(4)|浏览(116)

如何在controller.js中检查提交表单ng-submit="submit(field)"中的所有字段是否为空?它们由几个文本框和一个选择字段组成。
我希望出现一个警告框,如果所有字段均为空,选择选项未选中,而不是个别验证。

cld4siwp

cld4siwp1#

虽然这并不是你想问的问题,但$pristine可能是你想要的吗?它是表单上的一个标志,指示表单是否被编辑过。但是,如果有人输入并清除了一个字段,$pristine仍然是false。

<form name="myform" ng-submit="doSubmit()" ng-controller="FormController">
    <input ng-model="firstName" name="firstName" />

</form>

字符串
然后在您的控制器中

.controller('FormController', function($scope){
    $scope.doSubmit = function(){
        if($scope.myform.$pristine){}
    }
})


或者,您可以将所有字段设置为required="true",并以与上述相同的方式在表单上使用$valid标志。

kognpnkq

kognpnkq2#

你可以使用这个:

ng-show="!yourfield.length"

字符串
就像这样:

<form name="yourform">
  <input name="yourfield" ng-model="somefield" ng-minlength="10" required>
  <span ng-show="!yourfield.myfield.$error.required">Something</span>
</form>

inb24sb2

inb24sb23#

你应该找Form Validation。看看这个tutorial

<input name="name" class="form-control"
    ng-model="user.name" placeholder="Name" required>
  <div class="alert alert-danger"
    ng-show="userForm.name.$error.required">
    Please enter the name.
  </div>

字符串

s71maibg

s71maibg4#

如果所有字段均为空,则以下内容将显示警报

angular.module('app', [])
.controller('FormController', function($scope) {
  $scope.doSubmit = function(){
    if (formIsEmpty($scope.myform)){
      alert('You forgot to enter something before submitting');
    }
  };
  
  function formIsEmpty(form) {
    for (var prop in form) {
      if (!form.hasOwnProperty(prop)) { continue; }
      if (prop[0] === '$') { continue; }
      if ($scope[prop]) { return false; }
    }
    return true;
  }
});

个字符

相关问题