{"id":1089,"date":"2015-08-03T06:54:29","date_gmt":"2015-08-03T06:54:29","guid":{"rendered":"http:\/\/www.honobono-life.info\/wpeng\/?p=1089"},"modified":"2015-08-03T06:54:29","modified_gmt":"2015-08-03T06:54:29","slug":"angularjs-form-validation-error-messages","status":"publish","type":"post","link":"http:\/\/www.honobono-life.info\/wpeng\/angularjs-form-validation-error-messages\/","title":{"rendered":"Ruby on Rails Tutorial AngularJS form validation, error messages"},"content":{"rendered":"<p>$ vi app\/assets\/templates\/users\/new.html.erb<\/p>\r\n\r\n<pre class=\"prettyprint\">\r\n&lt;div ng-controller=&quot;UsersNewCtrl&quot; class=&quot;row&quot;&gt;\r\n&lt;style&gt;\r\n  form.ng-invalid.ng-dirty { background-color: lightpink; }\r\n  form.ng-valid.ng-dirty { background-color: lightgreen; }\r\n  form { padding: 10px;}\r\n&lt;\/style&gt;\r\n  &lt;div class=&quot;col-md-6 col-md-offset-3&quot;&gt;\r\n    &lt;h1 class=&quot;text-center&quot;&gt;Sign up&lt;\/h1&gt;\r\n    &lt;form name=&quot;userNewForm&quot; novalidate&gt;\r\n      &lt;div class=&quot;well&quot;&gt;\r\n        &lt;div class=&quot;form-group&quot; ng-class=&quot;{&#39;has-error&#39;: userNewForm.name.$invalid &amp;&amp; userNewForm.name.$dirty}&quot;&gt;\r\n          &lt;label&gt;Name&lt;\/label&gt;\r\n          &lt;input name=&quot;name&quot; class=&quot;form-control&quot;\r\n            ng-model=&quot;user.name&quot;\r\n            required\r\n            ng-maxlength=&quot;20&quot; \/&gt;\r\n          &lt;span class=&quot;text-danger&quot; ng-show=&quot;userNewForm.name.$dirty &amp;&amp; userNewForm.name.$error.required&quot;&gt;\r\n            Name can&#39;t be blank\r\n          &lt;\/span&gt;\r\n          &lt;span class=&quot;text-danger&quot; ng-show=&quot;userNewForm.name.$dirty &amp;&amp; userNewForm.name.$error.maxlength&quot;&gt;\r\n            Name is too long (maximum is 20 characters)\r\n          &lt;\/span&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div class=&quot;form-group&quot; ng-class=&quot;{&#39;has-error&#39;: userNewForm.email.$invalid &amp;&amp; userNewForm.email.$dirty}&quot;&gt;\r\n          &lt;label&gt;Email&lt;\/label&gt;\r\n          &lt;input type=&quot;email&quot; name=&quot;email&quot; class=&quot;form-control&quot;\r\n            ng-model=&quot;user.email&quot;\r\n            required \/&gt;\r\n          &lt;span class=&quot;text-danger&quot; ng-show=&quot;userNewForm.email.$dirty &amp;&amp; userNewForm.email.$error.required&quot;&gt;\r\n            Email can&#39;t be blank\r\n          &lt;\/span&gt;\r\n          &lt;span class=&quot;text-danger&quot; ng-show=&quot;userNewForm.email.$dirty &amp;&amp; userNewForm.email.$error.email&quot;&gt;\r\n            Email is invalid\r\n          &lt;\/span&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div class=&quot;form-group&quot; ng-class=&quot;{&#39;has-error&#39;: userNewForm.password.$invalid &amp;&amp; userNewForm.password.$dirty}&quot;&gt;\r\n          &lt;label&gt;Password&lt;\/label&gt;\r\n          &lt;input type=&quot;password&quot; name=&quot;password&quot; class=&quot;form-control&quot;\r\n            ng-model=&quot;user.password&quot;\r\n            required\r\n            ng-minlength=&quot;6&quot; \/&gt;\r\n          &lt;span class=&quot;text-danger&quot; ng-show=&quot;userNewForm.password.$dirty &amp;&amp; userNewForm.password.$error.required&quot;&gt;\r\n            Password can&#39;t be blank\r\n          &lt;\/span&gt;\r\n          &lt;span class=&quot;text-danger&quot; ng-show=&quot;userNewForm.password.$dirty &amp;&amp; userNewForm.password.$error.maxlength&quot;&gt;\r\n            Password is too short (minimum is 6 characters)\r\n          &lt;\/span&gt;\r\n        &lt;\/div&gt;\r\n..............\r\n        &lt;button ng-click=&quot;submit()&quot; class=&quot;btn btn-primary&quot;\r\n                ng-disabled=&quot;userNewForm.$invalid&quot; &gt;\r\n          Create my account\r\n        &lt;\/button&gt;\r\n      &lt;\/div&gt;\r\n    &lt;\/form&gt;\r\n  &lt;\/div&gt;\r\n&lt;\/div&gt;<\/pre>\r\n\r\n<p>&nbsp;<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>$ vi app\/assets\/templates\/users\/new.html.erb &lt;div ng-controller=&quot;UsersNewCtrl&quot; class=&quot;row&quot;&gt; &lt;style&gt; form.ng-invalid.ng-dirty { background-color: lightpink; } form.ng-valid.ng-dirty { background-color: lightgreen; } form { padding: 10px;} &lt;\/style&gt; &lt;div class=&quot;col-md-6 col-md-offset-3&quot;&gt; &lt;h1 class=&quot;text-center&quot;&gt;Sign up&lt;\/h1&gt; &lt;form name=&quot;userNewForm&quot; novalidate&gt; &lt;div class=&quot;well&quot;&gt; &lt;div class=&quot;form-group&quot; ng-class=&quot;{&#39;has-error&#39;: userNewForm.name.$invalid &amp;&amp; userNewForm.name.$dirty}&quot;&gt; &lt;label&gt;Name&lt;\/label&gt; &lt;input name=&quot;name&quot; class=&quot;form-control&quot; ng-model=&quot;user.name&quot; required ng-maxlength=&quot;20&quot; \/&gt; &lt;span class=&quot;text-danger&quot; ng-show=&quot;userNewForm.name.$dirty &amp;&amp; userNewForm.name.$error.required&quot;&gt; Name can&#39;t be [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[137],"tags":[82,153,154],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/1089"}],"collection":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/comments?post=1089"}],"version-history":[{"count":1,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/1089\/revisions"}],"predecessor-version":[{"id":1090,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/1089\/revisions\/1090"}],"wp:attachment":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/media?parent=1089"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/categories?post=1089"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/tags?post=1089"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}