如何检查给定的输入控件是否为空?我知道$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"
更好的选择可能是真正利用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>
即使您不需要测量字符串的长度。一个 !运营商可以为您解决一切。永远记住: !(empty string) = true !(some string) = false
所以你可以写:
<input ng-model="somefield">
<span ng-show="!somefield">Sorry, the field is empty!</span>
<span ng-hide="!somefield">Thanks. Successfully validated!</span>
另一种方法是使用正则表达式,如下所示,您可以使用空的正则表达式模式并使用 ng-pattern 实现相同的效果
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;
});
上述答案不适用于Angular 6。所以以下是我解决它的方法。可以说这就是我定义输入框的方式-
<input type="number" id="myTextBox" name="myTextBox"
[(ngModel)]="response.myTextBox"
#myTextBox="ngModel">
要检查该字段是否为空,这应该是脚本。
<div *ngIf="!myTextBox.value" style="color:red;">
Your field is empty
</div>
请注意上述答案与此答案之间的细微差别。我.value
在输入名称之后添加了一个附加属性myTextBox
。我不知道上面的答案是否适用于 Angular 的上述版本,但对于Angular 6来说,应该这样做。
关于此检查为何有效的更多解释;当输入框中没有值时,默认myTextBox.value
值为undefined
. 一旦您输入一些文本,您的文本就会成为 的新值myTextBox.value
。
当您的检查是!myTextBox.value
检查该值是否未定义时,它相当于myTextBox.value == undefined
.
如果输入字段不为空,则自动选中复选框。
<md-content>
<md-checkbox ng-checked="myField.length"> Other </md-checkbox>
<input ng-model="myField" placeholder="Please Specify" type="text">
</md-content>
如果您的文本框是必填字段并且有一些正则表达式模式要匹配并且具有 minlength 和 maxlength
测试框代码
<input type="text" name="myfieldname" ng-pattern="/^[ A-Za-z0-9_@./#&+-]*$/" ng-minlength="3" ng-maxlength="50" class="classname" ng-model="model.myfieldmodel">
要添加的 Ng 类
ng-class="{ 'err' : myform.myfieldname.$invalid || (myform.myfieldname.$touched && !model.myfieldmodel.length) }"