<div class="container" ng-app="app" ng-controller="MainCtrl">
<header>
<div class="page-header">
<h2>バインディングに連動したフォームの検証<small>(NULLチェック)</small></h2>
</div>
</header>
<section>
<!-- name="form"に注意 -->
<form name="form" class="form-horizontal">
<!-- form.nameがvalidでなければlabelとinputを自動的に赤くする(ng-classの指定) -->
<!-- has-errorはbootstrapのCSSクラス(http://getbootstrap.com/css/#forms-control-validation) -->
<div class="form-group" ng-class="{'has-error':!form.name.$valid}">
<label for="tiName" class="col-sm-2 control-label">名前</label>
<div class="col-sm-10">
<!-- name="name"とrequiredに注意 -->
<input id="tiName" type="text" class="form-control" placeholder="あなたの名前を入力してください" ng-model="name" name="name" required />
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-2">
<!-- nameがvalidなら自動的にクリック可能に -->
<button class="btn btn-primary btn-block" ng-disabled="!form.name.$valid">送信</button>
</div>
</div>
</form>
</section>
</div>
// appというAngularJSアプリケーションモジュールを作成
var app = angular.module('app', []);
// アプリケーションモジュールにMainCtrlというコントローラーを追加
app.controller('MainCtrl', function ($scope) {});
External resources loaded into this fiddle: