我正在尝试使用angularjs验证在mvc-asp.net中创建一个登录表单,
这是我的代码:
<span style="color:red" ng-show="frm.Email.$dirty || frm.Email.$invalid">
<span ng-show="frm.Email.$error.required">ایمیل را وارد کنید</span>
<span ng-show="frm.Email.$error.email">ایمیل وارد شده نامعتبر است</span>
</span>
当我将文本框留空时,出现错误frm.Email.$error.required
但是当我输入无效的电子邮件mike.com
时,ng-show="frm.Email.$error.email
的错误不会出现。为什么?
答案 0 :(得分:3)
你必须使用
<input type="email">
而不是
<input type="text">
或带有ng-pattern
的文本,其中包含您在这种情况下所需的模式。
P.S:不要忘记在表单中使用<form novalidate>
以避免HTML5验证并应用您的Angular验证
答案 1 :(得分:2)
好像你正在使用
<input type="text">.
对于电子邮件,您应该使用
<input type="email">.
要验证电子邮件地址,Angular会使用HTML5
valid
和invalid
控件。
答案 2 :(得分:0)
我认为您忘记为输入元素提供ng-pattern属性
答案 3 :(得分:0)
"form.mail.$error.email" //**form-name.input-name.$error.email**
<form ng-app="" name="form">
<div>
<label>e-mail:</label><input type="email" id="mail"name="mail" ng-model="mail">
<p><div ng-show="form.mail.$error.email">Enter the valid mail id</div></p>
</div>
在ng-show中我已经检查了验证中的电子邮件.. 表单是指表单标签的名称,邮件是指输入类型名称的电子邮件$ error是指检查错误和电子邮件是指到电子邮件的类型..