这是我想做的事情:
有没有办法检查ng-if上输入的视图值,还是有更好的解决方案来显示图标?
这是我正在使用的代码(省略了css类):
-HTML:
<form name="form-login">
<input placeholder="email" type="email" ng-model="form.email" required>
<i hm-tap="clearContent('email')",ng-if="form.email.length>0">
<input placeholder="password" type="email" ng-model="form.passwd" required>
<i hm-tap="clearContent('passwd')",ng-if="form.passwd.length>0">
</form>
-function清除coffeescript中的输入
$scope.clearContent = (fieldName) ->
switch fieldName
when 'passwd' then $scope.form.passwd = ""
when 'email' then $scope.form.email = ""
这适用于密码输入(因为它没有验证)。 谢谢你的阅读。
答案 0 :(得分:11)
浏览器验证会将输入的内部值保持为空,直到通过验证。在这种情况下,电子邮件验证。这意味着用户看到的和JS看到的不同!
您可以检查表单输入$viewValue
并显示其长度是否为&gt;你必须为你的表格(你已经拥有)和每个输入(我添加的)命名。您也可以FORMNAME.INPUTNAME.$viewValue
访问每个值。
<form name="formLogin">
<input placeholder="email" type="email" name="email" ng-model="form.email" required /> <i hm-tap="form.email = ''" ng-if="formLogin.email.$viewValue.length>0">!</i>
<input placeholder="password" type="password" name="passwd" ng-model="form.passwd" required /> <i hm-tap="form.passwd = ''" ng-if="formLogin.passwd.$viewValue.length>0">!</i>
</form>
示例:http://jsfiddle.net/TheSharpieOne/6M5JX/1/
此外,您可以通过直接在clearContent
hm-tap
功能