Angular形式 - 通过ng-required禁用验证

时间:2017-02-28 09:55:49

标签: javascript angularjs forms

我在MPI_Init()

中有一个电子邮件字段
form

在我的控制器 <div class="col-xs-4"> <label>mail</label> <input ng-required="vm.isMailReqired" pattern="^(([^<>()\[\]\.,;:\s@\']+(\.[^<>()\[\]\.,;:\s@\']+)*)|(\'.+\'))@(([^<>()[\]\.,;:\s@\']+\.)+[^<>()[\]\.,;:\s@\']{2,})$" class="form-control sgn-rounded_textbox" name="emailBox" ng-disabled="!vm.model.signAgreement" ng-model="vm.model.emails.beitEsek"> </div> 中设置为false,但vm.isMailReqired仍为true,因此我的表单控制器(emailBox.$invalid)为false - formsToSign

编辑 - 整个表单

formsToSign.$valid:false

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我已经使用一个输入元素量身定制了您的示例并制作了fiddle并且它没有任何工作 的问题。

我想这个问题与其他输入元素有关。尝试使用{{formsToSign.$error}}进行调试以查找错误

HTML

<div ng-controller="MyController as vm">
  <form name="formsToSign" novalidate class="form-validation">
    <div class="row">
      <div class="col-xs-12 form-group">
        <div class="col-xs-4">
          <label>mail {{vm.isMailReqired}}</label>
          <input ng-required="vm.isMailReqired" pattern="^(([^<>()\[\]\.,;:\s@\']+(\.[^<>()\[\]\.,;:\s@\']+)*)|(\'.+\'))@(([^<>()[\]\.,;:\s@\']+\.)+[^<>()[\]\.,;:\s@\']{2,})$" class="form-control sgn-rounded_textbox" name="emailBox" ng-disabled="!vm.isMailReqired"
          ng-model="vm.model.emails.beitEsek" />
        </div>
      </div>
    </div>
    <div class="row">
      <div class="pull-left">
        <!--Show this button when form is valid only -->
        <button ng-class="{'invalidForm':( vm.buttonDisableValidation || formsToSign.$invalid)}" ng-disabled="formsToSign.$invalid" class="sgn_redBTN" ng-click="vm.showFormAndClose()">Show Forms</button>
      </div>
    </div>
  </form>
  <p>
    <b>{{formsToSign.$error}}</b>
  </p>
</div>

JS

angular
  .module('myApp', []);
angular
  .module('myApp')
  .controller('MyController', MyController);
MyController.$inject = [];

function MyController() {
  var vm = this;
  vm.isMailReqired = true;
}

答案 1 :(得分:0)

$无效 布尔 如果至少一个包含控件或表单无效,则为True。

    邮件   ()\ [\] \;:\ S @ \ '] +(\ [^()\ [\] \;:。\ S @ \'] +)。*)|(\” + \ '))@(([^()[\] \;:\ S @ \'] + \)+ [^()[\] \;:\ S @ \']。{2 ,})$“class =”form-control sgn-rounded_textbox“name =”emailBox“ng-disabled =”vm.model.signAgreement“ng-model =”vm.model.emails.beitEsek“&gt;