特定の入力コントロールが空かどうかを確認するにはどうすればよいですか?私は、フィールドに$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>
文字列の長さを測定する必要はありません。 A!オペレータはあなたのためにすべてを解決できます。常に覚えておいてください:!(空の文字列)= true!(一部の文字列)= 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>
Controller:@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>
上記の答えとこの答えの微妙な違いに注意してください。入力名myTextBox
の後に.value
属性を追加しました。上記の回答が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>