我尝试使用AngularJS提供的built-in validation mechanisms来实现客户端验证。
我输入了perl
类型的简单输入,如果使用email
提交表单后,或者一旦控件使用{{1}失去焦点,则电子邮件无效时必须显示错误}}
$submitted
但是当我输入无效的电子邮件地址时,没有触发错误。 $touched
可以正常工作,如果我删除所有其他条件,则会在触发后显示消息,但是当我需要访问特定字段(<form name="form" novalidate>
<div class="form-group">
<label for="input-emailaddress">Adresse email</label>
<input type="email" class="form-control" name="input-emailaddress" placeholder="Entrez votre email" ng-model="user.email" required="required">
<div ng-show="form.$submitted || form.input-emailaddress.$touched">
<div ng-show="form.input-emailaddress.$error.email">Please insert a valid email address.</div>
</div>
</div>
</form>
)时,验证无效。
有没有人可以帮我弄清楚为什么这不起作用?
答案 0 :(得分:4)
当您使用.
访问JSON对象时,您的变量不应包含-
之类的任何字符,或者不应使用数字变量启动。您应该像form.input-emailaddress
那样访问form["input-emailaddress"]
因为它包含名称中的连字符不起作用
<强>更新强>
根据@SunilD建议我们可以更改名称,不应该遵循这样的crieteria你可以使用cammel案例而不是这样做