如何检查给定的输入控件是否为空?我知道这个字段上有$pristine
属性,它告诉我们如果一个给定的字段最初是空的,但是如果某人填充该字段并再次抽出整个内容会怎么样?检查输入框是否为空
我认为上面的功能是必要的,因为它告诉用户该字段是必需的重要。
任何想法将不胜感激!
如何检查给定的输入控件是否为空?我知道这个字段上有$pristine
属性,它告诉我们如果一个给定的字段最初是空的,但是如果某人填充该字段并再次抽出整个内容会怎么样?检查输入框是否为空
我认为上面的功能是必要的,因为它告诉用户该字段是必需的重要。
任何想法将不胜感激!
<input ng-model="somefield">
<span ng-show="!somefield.length">Please enter something!</span>
<span ng-show="somefield.length">Good boy!</span>
你也可以使用ng-hide="somefield.length"
代替ng-show="!somefield.length"
如果你读起来更自然。
一个更好的选择可能是真的采取form abilities of Angular的优势:
<form name="myform">
<input name="myfield" ng-model="somefield" ng-minlength="5" required>
<span ng-show="myform.myfield.$error.required">Please enter something!</span>
<span ng-show="!myform.myfield.$error.required">Good boy!</span>
</form>
即使你不需要来衡量字符串的长度。一个 !操作员可以为您解决所有问题。永远记住:! (空字符串)=真 (某些字符串)= FALSE
所以,你可以写:
<input ng-model="somefield">
<span ng-show="!somefield">Sorry, the field is empty!</span>
<span ng-hide="!somefield">Thanks. Successfully validated!</span>
它伤害了我的大脑! **相同**检查两种情况? –
是乔纳塔斯似乎令人困惑,因为它是相同的检查,但实际上这些是不同的。第一个是ng-show,第二个是ng-hide。所以他们是相反的! :-)你也可以同时使用ng-show和不同的检查。一个没有(!),另一个没有(!)。 –
我明白了,谢谢你的解释。 –
另一种方法是使用正则表达式,如下面的节目,你可以使用空正则表达式模式并获得相同的使用NG-图案
HTML:
<body ng-app="app" ng-controller="formController">
<form name="myform">
<input name="myfield" ng-model="somefield" ng-minlength="5" ng-pattern="mypattern" required>
<span ng-show="myform.myfield.$error.pattern">Please enter!</span>
<span ng-show="!myform.myfield.$error.pattern">great!</span>
</form>
控制器:@formController:
var App = angular.module('app', []);
App.controller('formController', function ($scope) {
$scope.mypattern = /^\s*$/g;
});
要自动检查复选框,如果输入字段不为空。
<md-content>
<md-checkbox ng-checked="myField.length"> Other </md-checkbox>
<input ng-model="myField" placeholder="Please Specify" type="text">
</md-content>
嗨,长度属性只有当字段是有效的。例如,我将字段的“minlength”设置为5,只输入三个字符,那么length属性将不可用。 – vivek
@vivekpoddar [Angular should be forgiving](http://docs.angularjs.org/guide/expression)尽管如此,所以当'length'不可用时,它的计算结果为'undefined',它被解释为false。如果你试图在控制器中进行检查,即使用JavaScript而不是Angular表达式,那么这是另一个需要自己处理宽容的故事。请注意,还有一个'required'属性,它可能正是你想要的:http://docs.angularjs.org/api/ng.directive:input.text – Supr
@vivekpoddar更新为'required'示例。 – Supr