比较两个字段和表单。$ valid

时间:2013-11-25 12:24:20

标签: forms validation angularjs angularjs-directive

我想要实现的是两个我想比较的输入字段。如果相同,表格必须有效。否则,无效。这是代码:

<form name="form" class="css-form" novalidate>
E-mail: <input type="email" placeholder="student@university.com" 
             ng-model="user.email" name="uEmail" required/>
    <span class="error" ng-show="form.uEmail.$error.email">
        Not valid email!</span> 



Repeat e-mail: <input type="email" placeholder="student@university.com" 
            ng-model="repEmail"  required/>
    <span ng-if="user.email != repEmail">
        E-mail address are not same!
        </span> 
</form>

问题是,虽然这些字段不相同,但确实如此:

form.$valid == true

因此,如何更改表单的有效性,以便在输入字段不相同时(尽管它们是有效的电子邮件地址)可以为false

2 个答案:

答案 0 :(得分:1)

您可以在此处使用两种方法。您可以使用angular-ui's验证器指令(这可能是最简单的方法),或者您可以编写自己的指令。

如果你决定使用angular-ui的验证器,它看起来像这样:

<input name="email" required ng-model="user.email">
<input name="confirm_email"
    ui-validate=" '$value==email' "
    ui-validate-watch=" 'email' ">
<span ng-show="form.confirm_emal.$error.validator">Emails do not match!</span>

答案 1 :(得分:0)

只需将类型更改为电子邮件

即可
Repeat e-mail: <input type="email" placeholder="student@university.com" 
            ng-model="repEmail"  required/>

编辑:

而不是仅使用
form.$valid
使用
form.$valid && user.email == repEmail