天天看點

AngularJS表單驗證操作例子分享

<code>&lt;!--form.html--&gt;</code>

<code>&lt;!DOCTYPE html&gt;</code>

<code>&lt;</code><code>html</code> <code>ng-app</code><code>=</code><code>"firstMoudule"</code> <code>lang</code><code>=</code><code>"zh-CN"</code><code>&gt;</code>

<code>&lt;</code><code>head</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>meta</code> <code>charset</code><code>=</code><code>'utf-8'</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>link</code> <code>rel</code><code>=</code><code>"stylesheet"</code> <code>href</code><code>=</code><code>"http://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.css"</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>link</code> <code>rel</code><code>=</code><code>"stylesheet"</code> <code>href</code><code>=</code><code>"../CSS/style.css"</code><code>&gt;</code>

<code>&lt;/</code><code>head</code><code>&gt;</code>

<code>&lt;</code><code>body</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"container"</code> <code>ng-controller</code><code>=</code><code>"firstController"</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>form</code> <code>class</code><code>=</code><code>"form-horizontal"</code> <code>name</code><code>=</code><code>"myForm"</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"form-group"</code> <code>ng-class</code><code>=</code><code>"{'has-warning':(myForm.username.$error.minlength||myForm.username.$error.maxlength||myForm.username.$error.required &amp;&amp; myForm.username.$dirty),'has-success':((!myForm.username.$error.minlength)&amp;&amp;(!myForm.username.$error.required)&amp;&amp;(!myForm.username.$error.maxlength))}"</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>label</code> <code>for</code><code>=</code><code>"inputUsername"</code> <code>class</code><code>=</code><code>"col-sm-4 control-label"</code><code>&gt;Your Username&lt;/</code><code>label</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"col-sm-4"</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>input</code> <code>type</code><code>=</code><code>"text"</code> <code>class</code><code>=</code><code>"form-control"</code> <code>id</code><code>=</code><code>"inputUsername"</code> <code>placeholder</code><code>=</code><code>"Your Username"</code> <code>autocomplete</code><code>=</code><code>"false"</code> <code>ng-required</code><code>=</code><code>"true"</code> <code>ng-model</code><code>=</code><code>"data.username"</code> <code>name</code><code>=</code><code>"username"</code> <code>ng-minlength</code><code>=</code><code>"6"</code> <code>ng-maxlength</code><code>=</code><code>"20"</code><code>&gt;</code>

<code>                </code><code>&lt;/</code><code>div</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>div</code> <code>ng-show</code><code>=</code><code>"myForm.username.$error.minlength||myForm.username.$error.maxlength||myForm.username.$error.required&amp;&amp;myForm.username.$dirty"</code> <code>class</code><code>=</code><code>"col-sm-1 info-block"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"glyphicon glyphicon-remove"</code><code>&gt;&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>div</code> <code>ng-show</code><code>=</code><code>"(!myForm.username.$error.minlength)&amp;&amp;(!myForm.username.$error.required)&amp;&amp;(!myForm.username.$error.maxlength)"</code> <code>class</code><code>=</code><code>"col-sm-1 info-block"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"glyphicon glyphicon-ok"</code><code>&gt;&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>            </code><code>&lt;/</code><code>div</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"form-group"</code> <code>ng-class</code><code>=</code><code>"{'has-warning':(myForm.email.$error.email||myForm.email.$error.required&amp;&amp;myForm.email.$dirty),'has-success':((!myForm.email.$error.email)&amp;&amp;(!myForm.email.$error.required))}"</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>label</code> <code>for</code><code>=</code><code>"inputEmail3"</code> <code>class</code><code>=</code><code>"col-sm-4 control-label"</code><code>&gt;Your Email&lt;/</code><code>label</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>input</code> <code>type</code><code>=</code><code>"email"</code> <code>class</code><code>=</code><code>"form-control"</code> <code>id</code><code>=</code><code>"inputEmail3"</code> <code>placeholder</code><code>=</code><code>"Your Email"</code> <code>autocomplete</code><code>=</code><code>"false"</code> <code>ng-required</code><code>=</code><code>"true"</code> <code>ng-model</code><code>=</code><code>"data.email"</code> <code>name</code><code>=</code><code>"email"</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>div</code> <code>ng-show</code><code>=</code><code>"myForm.email.$error.email||myForm.email.$error.required&amp;&amp;myForm.email.$dirty"</code> <code>class</code><code>=</code><code>"col-sm-1 info-block"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"glyphicon glyphicon-remove"</code><code>&gt;&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>div</code> <code>ng-show</code><code>=</code><code>"(!myForm.email.$error.email) &amp;&amp; (!myForm.email.$error.required)"</code> <code>class</code><code>=</code><code>"col-sm-1 info-block"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"glyphicon glyphicon-ok"</code><code>&gt;&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"form-group"</code> <code>ng-class</code><code>=</code><code>"{'has-warning':(myForm.password.$error.pattern||myForm.password.$error.required&amp;&amp;myForm.password.$dirty),'has-success':((!myForm.password.$error.pattern)&amp;&amp;(!myForm.password.$error.required))}"</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>label</code> <code>for</code><code>=</code><code>"inputPassword"</code> <code>class</code><code>=</code><code>"col-sm-4 control-label"</code><code>&gt;Your Password&lt;/</code><code>label</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>input</code> <code>type</code><code>=</code><code>"password"</code> <code>class</code><code>=</code><code>"form-control"</code> <code>id</code><code>=</code><code>"inputPassword"</code> <code>placeholder</code><code>=</code><code>"Your Password"</code> <code>ng-pattern</code><code>=</code><code>"/^\w{6,18}$/"</code> <code>ng-required</code><code>=</code><code>"true"</code> <code>ng-model</code><code>=</code><code>"data.password"</code> <code>name</code><code>=</code><code>"password"</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>div</code> <code>ng-show</code><code>=</code><code>"myForm.password.$error.pattern||myForm.password.$error.required&amp;&amp;myForm.password.$dirty"</code> <code>class</code><code>=</code><code>"col-sm-1 info-block"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"glyphicon glyphicon-remove"</code><code>&gt;&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>div</code> <code>ng-show</code><code>=</code><code>"(!myForm.password.$error.pattern)&amp;&amp;(!myForm.password.$error.required)"</code> <code>class</code><code>=</code><code>"col-sm-1 info-block"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"glyphicon glyphicon-ok"</code><code>&gt;&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"form-group"</code> <code>ng-class</code><code>=</code><code>"{'has-warning':(data.passwordRe!==data.password||myForm.passwordRe.$error.required&amp;&amp;myForm.passwordRe.$dirty),'has-success':(data.passwordRe===data.password&amp;&amp;(!myForm.passwordRe.$error.required))}"</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>label</code> <code>for</code><code>=</code><code>"inputPasswordRe"</code> <code>class</code><code>=</code><code>"col-sm-4 control-label"</code><code>&gt;Repeat Password&lt;/</code><code>label</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>input</code> <code>type</code><code>=</code><code>"password"</code> <code>class</code><code>=</code><code>"form-control"</code> <code>id</code><code>=</code><code>"inputPasswordRe"</code> <code>placeholder</code><code>=</code><code>"Repeat Password"</code> <code>ng-required</code><code>=</code><code>"true"</code> <code>ng-model</code><code>=</code><code>"data.passwordRe"</code> <code>name</code><code>=</code><code>"passwordRe"</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>div</code> <code>ng-show</code><code>=</code><code>"data.passwordRe!==data.password||myForm.passwordRe.$error.required&amp;&amp;myForm.passwordRe.$dirty"</code> <code>class</code><code>=</code><code>"col-sm-1 info-block"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"glyphicon glyphicon-remove"</code><code>&gt;&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>div</code> <code>ng-show</code><code>=</code><code>"data.passwordRe===data.password&amp;&amp;(!myForm.passwordRe.$error.required)"</code> <code>class</code><code>=</code><code>"col-sm-1 info-block"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"glyphicon glyphicon-ok"</code><code>&gt;&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"form-group"</code> <code>ng-class</code><code>=</code><code>"{'has-warning':(myForm.site.$error.url||myForm.site.$error.required&amp;&amp;myForm.site.$dirty),'has-success':((!myForm.site.$error.email)&amp;&amp;(!myForm.site.$error.required))}"</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>label</code> <code>for</code><code>=</code><code>"inputSite"</code> <code>class</code><code>=</code><code>"col-sm-4 control-label"</code><code>&gt;Your Site&lt;/</code><code>label</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>input</code> <code>type</code><code>=</code><code>"url"</code> <code>class</code><code>=</code><code>"form-control"</code> <code>id</code><code>=</code><code>"inputSite"</code> <code>placeholder</code><code>=</code><code>"Your Site"</code> <code>autocomplete</code><code>=</code><code>"false"</code> <code>ng-required</code><code>=</code><code>"true"</code> <code>ng-model</code><code>=</code><code>"data.site"</code> <code>name</code><code>=</code><code>"site"</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>div</code> <code>ng-show</code><code>=</code><code>"myForm.site.$error.email||myForm.site.$error.required&amp;&amp;myForm.site.$dirty"</code> <code>class</code><code>=</code><code>"col-sm-1 info-block"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"glyphicon glyphicon-remove"</code><code>&gt;&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>div</code> <code>ng-show</code><code>=</code><code>"(!myForm.site.$error.url) &amp;&amp; (!myForm.site.$error.required)"</code> <code>class</code><code>=</code><code>"col-sm-1 info-block"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"glyphicon glyphicon-ok"</code><code>&gt;&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"form-group"</code> <code>ng-class</code><code>=</code><code>"{'has-warning':(myForm.age.$error.min||myForm.age.$error.max||myForm.age.$error.required&amp;&amp;myForm.age.$dirty),'has-success':((!myForm.age.$error.min)&amp;&amp;(!myForm.age.$error.required)&amp;&amp;(!myForm.age.$error.max))}"</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>label</code> <code>for</code><code>=</code><code>"inputAge"</code> <code>class</code><code>=</code><code>"col-sm-4 control-label"</code><code>&gt;Your Age&lt;/</code><code>label</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>input</code> <code>type</code><code>=</code><code>"number"</code> <code>class</code><code>=</code><code>"form-control"</code> <code>id</code><code>=</code><code>"inputAge"</code> <code>placeholder</code><code>=</code><code>"Your Age"</code> <code>autocomplete</code><code>=</code><code>"false"</code> <code>ng-required</code><code>=</code><code>"true"</code> <code>ng-model</code><code>=</code><code>"data.age"</code> <code>name</code><code>=</code><code>"age"</code> <code>max</code><code>=</code><code>"120"</code> <code>min</code><code>=</code><code>"18"</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>div</code> <code>ng-show</code><code>=</code><code>"(myForm.age.$error.min||myForm.age.$error.max||myForm.age.$error.required&amp;&amp;myForm.age.$dirty)"</code> <code>class</code><code>=</code><code>"col-sm-1 info-block"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"glyphicon glyphicon-remove"</code><code>&gt;&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>div</code> <code>ng-show</code><code>=</code><code>"((!myForm.age.$error.min)&amp;&amp;(!myForm.age.$error.required)&amp;&amp;(!myForm.age.$error.max))"</code> <code>class</code><code>=</code><code>"col-sm-1 info-block"</code><code>&gt;&lt;</code><code>span</code> <code>class</code><code>=</code><code>"glyphicon glyphicon-ok"</code><code>&gt;&lt;/</code><code>span</code><code>&gt;&lt;/</code><code>div</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"form-group"</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>label</code> <code>for</code><code>=</code><code>"inputSex"</code> <code>class</code><code>=</code><code>"col-sm-4 control-label"</code><code>&gt;Your Sex&lt;/</code><code>label</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>label</code> <code>class</code><code>=</code><code>"radio-inline"</code><code>&gt;</code>

<code>                        </code><code>&lt;</code><code>input</code> <code>type</code><code>=</code><code>"radio"</code> <code>name</code><code>=</code><code>"sex"</code> <code>value</code><code>=</code><code>"1"</code> <code>ng-model</code><code>=</code><code>"data.sex"</code><code>&gt;male</code>

<code>                    </code><code>&lt;/</code><code>label</code><code>&gt;</code>

<code>                        </code><code>&lt;</code><code>input</code> <code>type</code><code>=</code><code>"radio"</code> <code>name</code><code>=</code><code>"sex"</code> <code>value</code><code>=</code><code>"0"</code> <code>ng-model</code><code>=</code><code>"data.sex"</code><code>&gt;female</code>

<code>                </code><code>&lt;</code><code>label</code> <code>for</code><code>=</code><code>"inputHobby"</code> <code>class</code><code>=</code><code>"col-sm-4 control-label"</code><code>&gt;Your Hobby&lt;/</code><code>label</code><code>&gt;</code>

<code>                    </code><code>&lt;</code><code>label</code> <code>class</code><code>=</code><code>"checkbox-inline"</code> <code>ng-repeat</code><code>=</code><code>"hobby in hobbies"</code><code>&gt;</code>

<code>                        </code><code>&lt;</code><code>input</code> <code>type</code><code>=</code><code>"checkbox"</code> <code>name</code><code>=</code><code>"hobby"</code> <code>value</code><code>=</code><code>"hobby.id"</code> <code>ng-click</code><code>=</code><code>"toggleHobbySelection(hobby.id)"</code> <code>ng-checked</code><code>=</code><code>"hobbyData.hobbies.indexOf(hobby.id)!==-1"</code><code>&gt;`hobby`.`name`</code>

<code>        </code><code>&lt;/</code><code>form</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>div</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>script</code> <code>src</code><code>=</code><code>"http://cdn.bootcss.com/angular.js/1.4.0-rc.2/angular.min.js"</code><code>&gt;&lt;/</code><code>script</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>script</code> <code>src</code><code>=</code><code>"../JS/controllers.js"</code><code>&gt;&lt;/</code><code>script</code><code>&gt;</code>

<code>&lt;/</code><code>body</code><code>&gt;</code>

<code>&lt;/</code><code>html</code><code>&gt;</code>

<code>/*style.css*/</code>

<code>.container {</code>

<code>    </code><code>margin-top</code><code>: </code><code>40px</code><code>;</code>

<code>}</code>

<code>.glyphicon {</code>

<code>    </code><code>padding-top</code><code>: </code><code>8px</code><code>;</code>

<code>.glyphicon-remove {</code>

<code>    </code><code>color</code><code>: </code><code>red</code><code>;</code>

<code>.glyphicon-ok {</code>

<code>    </code><code>color</code><code>: </code><code>green</code><code>;</code>

<code>.info-</code><code>block</code> <code>{</code>

<code>    </code><code>padding-left</code><code>: </code><code>0px</code><code>;</code>

<code>// controllers.js</code>

<code>angular.module(</code><code>'firstMoudule'</code><code>, [])</code>

<code>    </code><code>.service(</code><code>'hobbyDataService'</code><code>, </code><code>function</code><code>() {</code>

<code>        </code><code>return</code> <code>{</code>

<code>            </code><code>hobbies: [1, 3]</code>

<code>        </code><code>}</code>

<code>    </code><code>})</code>

<code>    </code><code>.controller(</code><code>'firstController'</code><code>, [</code><code>'$scope'</code><code>, </code><code>'hobbyDataService'</code><code>, </code><code>function</code><code>($scope, hobbyDataService) {</code>

<code>        </code><code>$scope.hobbies = [{</code>

<code>            </code><code>id: 1,</code>

<code>            </code><code>name: </code><code>'coding'</code>

<code>        </code><code>}, {</code>

<code>            </code><code>id: 2,</code>

<code>            </code><code>name: </code><code>'soccer'</code>

<code>            </code><code>id: 3,</code>

<code>            </code><code>name: </code><code>'reading'</code>

<code>            </code><code>id: 4,</code>

<code>            </code><code>name: </code><code>'sleeping'</code>

<code>        </code><code>}];</code>

<code>        </code><code>$scope.hobbyData = hobbyDataService;</code>

<code>        </code><code>$scope.toggleHobbySelection = </code><code>function</code><code>(id) {</code>

<code>            </code><code>var</code> <code>index = $scope.hobbyData.hobbies.indexOf(id);</code>

<code>            </code><code>if</code> <code>(index === -1) {</code>

<code>                </code><code>$scope.hobbyData.hobbies.push(id);</code>

<code>            </code><code>} </code><code>else</code> <code>{</code>

<code>                </code><code>$scope.hobbyData.hobbies.splice(index, 1);</code>

<code>            </code><code>}</code>

<code>            </code><code>console.log($scope.hobbyData.hobbies);</code>

<code>    </code><code>}]);</code>

頁面效果

<a href="http://s3.51cto.com/wyfs02/M00/6F/4C/wKioL1WYDZyzSJhNAAEwjJefuQE608.jpg" target="_blank"></a>

本文轉自 iampomelo 51CTO部落格,原文連結:http://blog.51cto.com/iampomelo/1671001,如需轉載請自行聯系原作者