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

Forms 比较两个字段和表单。$valid,forms,validation,angularjs,angularjs-directive,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="err

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

<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>

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

Repeat e-mail: <input type="email" placeholder="student@university.com" 
            ng-model="repEmail"  required/>
重复发送电子邮件:
编辑:

而不仅仅是使用
表单。$valid


使用
表单。$valid&&user.email==repEmail
这里可以使用两种方法。您可以使用validator指令(这可能是最简单的方法),也可以编写自己的指令

如果您决定使用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.)表单应该是有效的。这可以通过表单$valid实现,在将repEmail类型设置为email
2)之后。email和repEmail是相等的
,而不是只使用
if(表单$valid)submit()
使用if(form.$valid&&$scope.user.email!=$scope.repEmail)提交我很感谢您的光临,但我对编写自定义验证器感兴趣!我已经提出了一个单独的具体问题,你能回答吗?
<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>