我想要实现的是两个我想比较的输入字段。如果相同,表格必须有效。否则,无效。这是代码:
<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
答案 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