在Controller

时间:2016-08-19 21:51:27

标签: javascript html angularjs validation email

我有一个输入列表,其中的用户可以在电子邮件中输入,在这些输入中我想允许invaild输入,所以在输入标签上我有ng-model-options="{allowInvalid: true}"然后当用户完成输入时电子邮件,他们点击了一个提交按钮,在控制器中调用我的函数enter()

在HTML中,我使用ng-model="item.text"设置了每个电子邮件输入,然后在控制器中我可以遍历我的电子邮件。这是我想检查它们是否有效的地方。我怎么能这样做?

我在https://docs.angularjs.org/api/ng/input/input%5Bemail%5D上看到myForm.input.$valid已被使用,因此我获得了所有输入元素并尝试了inputEle.$valid,但这总是以undefined的形式返回。

因此,在我的循环中,我可以访问用户输入的原始文本,例如:

test@@email..com
vaild@email.com

我可以访问输入元素,如

<input type="email" placeholder="Email" ng-model="item.text" ng-model-options="{allowInvalid: true}" class="ng-not-empty ng-dirty ng-invalid ng-invalid-email ng-invalid-remove ng-valid-email-add ng-invalid-email-remove ng-touched" style="">

那么如何在我的控制器的循环中验证电子邮件呢?

由于

1 个答案:

答案 0 :(得分:0)

为了检查控制器中的输入,您必须在其中设置“name”属性。例如:

<input type="email" name="email_name" placeholder="Email" ng-model="item.text" ng-model-options="{allowInvalid: true}" class="ng-not-empty ng-dirty ng-invalid ng-invalid-email ng-invalid-remove ng-valid-email-add ng-invalid-email-remove ng-touched" style="">

然后在控制器中访问$ valid属性:

...
if(myForm.email_name.$valid) {
  ...
}
...

示例:https://jsfiddle.net/vk94weuu/2/