我从对象创建一个简单的表单..现在我验证了那个表单。我在验证时遇到了一些问题。请在firefox上查看这个..
http://plnkr.co/edit/CFUR2mgVv4hzXPF7AR9y?p=preview
我学习了很多教程但是我应用了这个东西 $ dirty,$ pristine 但是没有什么对我有用.. 我从那里学习验证.. http://scotch.io/tutorials/javascript/angularjs-form-validation
<ul ng-repeat="input in inputs">
<li><span>{{input.name}} : </span>
<div ng-switch="input.type" ng-form="myfrm">
<div ng-switch-when="text">
<input type="text" ng-model="outputs[input.name]"/>
</div>
<div ng-switch-when="email" class="form-group" >
<input type="email" ng-model="outputs[input.name]" name="input" ng-required="input.required">
<P ng-show="myfrm.input.$invalid && !myform.input.$pristine">Please enter a valid email</P>
</div>
<div ng-switch-when="number">
<input type="number" ng-model="outputs[input.name]" ng-required="input.required" name="input"/>
<P ng-if="myfrm.input.$invalid">Please enter a valid number</P>
</div>
<div ng-switch-when="url">
<input type="number" ng-model="outputs[input.name]"/>
</div>
<div ng-switch-when="checkbox">
<input type="checkbox" ng-model="outputs[input.name]" ng-checked="outputs[input.name]" value="outputs[input.name]"/>
</div>
</div>
</li>
</ul>
答案 0 :(得分:1)
您使用$pristine
时会出现拼写错误,myform
应该像您在myfrm
中设置的ng-form
一样:
<p ng-show="myfrm.input.$invalid && !myfrm.input.$pristine">Please enter a valid email</p>
要显示无效电子邮件和空电子邮件的不同邮件,您可以使用$error
代替$invalid
,如下所示:
<p ng-show="myfrm.input.$error.email && !myfrm.input.$pristine">Please enter a valid email</p>
<p ng-show="myfrm.input.$error.required && !myfrm.input.$pristine">Please enter the email</p>
示例Plunker: http://plnkr.co/edit/eD4OZ8nqETBACpSMQ7Tm?p=preview