﻿
{"id":8136,"date":"2018-06-03T12:29:44","date_gmt":"2018-06-03T12:29:44","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=8136"},"modified":"2018-06-03T12:29:44","modified_gmt":"2018-06-03T12:29:44","slug":"angular-4-forms-validations","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/angular-4-forms-validations\/","title":{"rendered":"Angular 4 &#8211; Forms Validations"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bir \u00f6nceki <a href=\"http:\/\/www.gencayyildiz.com\/blog\/angular-4-forms-uygulamalari\/\" rel=\"noopener\" target=\"_blank\">Angular 4 Forms Uygulamalar\u0131<\/a> ba\u015fl\u0131kl\u0131 makalemde Angular&#8217;da \u015fablon odakl\u0131 ve model odakl\u0131 olmak \u00fczere iki farkl\u0131 form yap\u0131s\u0131n\u0131 incelemi\u015f bulunmaktay\u0131z. Bu i\u00e7eri\u011fimizde ise form do\u011frulama i\u015flemleri olan Forms Validations y\u00f6ntemlerini inceleyece\u011fiz. Lakin ilgili i\u00e7eri\u011fimizde sadece model odakl\u0131 form yap\u0131s\u0131n\u0131 g\u00f6z \u00f6n\u00fcnde bulunduraca\u011f\u0131z.<\/p>\n<p>Hi\u00e7 vakit kaybetmeden ba\u015flayal\u0131m&#8230;<\/p>\n<p>Model odakl\u0131 form yap\u0131lar\u0131nda do\u011frulama\/validations i\u015flemi i\u00e7in &#8220;@angular\/forms&#8221; dizinindeki &#8220;Validators&#8221; s\u0131n\u0131f\u0131n\u0131n ilgili component s\u0131n\u0131f\u0131na import edilmesi gerekmektedir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport { FormGroup, FormControl, Validators } from '@angular\/forms';\r\n<\/pre>\n<p>\u015eimdi \u00f6rnek bir form tasla\u011f\u0131 olu\u015ftural\u0131m ve gerekli Validations i\u015flemlerinin nas\u0131l yap\u0131laca\u011f\u0131n\u0131 \u00fczerinden izah etmeye \u00e7al\u0131\u015fal\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;form &#x5B;formGroup]=&quot;frmIletisim&quot; (ngSubmit)=&quot;OnClickForm(frmIletisim.value)&quot;&gt;\r\n  &lt;input type=&quot;text&quot; placeholder=&quot;Ad\u0131n\u0131z...&quot; formControlName=&quot;adi&quot; \/&gt;\r\n  &lt;br&gt;\r\n  &lt;input type=&quot;email&quot; placeholder=&quot;E-Posta Adresiniz...&quot; formControlName=&quot;email&quot; \/&gt;\r\n  &lt;br&gt;\r\n  &lt;select formControlName=&quot;meslek&quot;&gt;\r\n    &lt;option value=&quot;0&quot;&gt;\u00d6\u011fretmen&lt;\/option&gt;\r\n    &lt;option value=&quot;1&quot;&gt;Yaz\u0131l\u0131m M\u00fch.&lt;\/option&gt;\r\n    &lt;option value=&quot;2&quot;&gt;Doktor&lt;\/option&gt;\r\n    &lt;option value=&quot;3&quot;&gt;Di\u011fer&lt;\/option&gt;\r\n  &lt;\/select&gt;\r\n  &lt;br&gt;\r\n  &lt;textarea placeholder=&quot;Mesaj\u0131n\u0131z...&quot; rows=&quot;7&quot; formControlName=&quot;mesaj&quot;&gt;&lt;\/textarea&gt;\r\n  &lt;br&gt;\r\n  &lt;button &#x5B;disabled]=&quot;!frmIletisim.valid&quot;&gt;G\u00f6nder&lt;\/button&gt;\r\n&lt;\/form&gt;\r\n<\/pre>\n<p>Formda dikkat etmeniz gereken tek husus &#8220;button&#8221; nesnesine tan\u0131mlanan &#8220;[disabled]&#8221; \u00f6zelli\u011fidir. Birazdan component s\u0131n\u0131f\u0131nda yapaca\u011f\u0131m\u0131z validations i\u015flemlerine nazaran form \u00fczerinde ge\u00e7ersiz bir do\u011frulama s\u00f6z konusu olursa ilgili buton taa ki form do\u011frulanana kadar pasifize edilecektir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport { Component, OnInit } from '@angular\/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular\/forms';\r\n@Component({\r\n  selector: 'app-contact-form',\r\n  templateUrl: '.\/contact-form.component.html',\r\n  styleUrls: &#x5B;'.\/contact-form.component.css']\r\n})\r\nexport class ContactFormComponent implements OnInit {\r\n  constructor() { }\r\n  ngOnInit() {\r\n    this.frmIletisim = new FormGroup({\r\n      adi: new FormControl(&quot;&quot;, Validators.compose(&#x5B;\r\n        Validators.required\r\n      ])),\r\n      email: new FormControl(&quot;&quot;, Validators.compose(&#x5B;\r\n        Validators.required,\r\n        Validators.pattern(&quot;&#x5B;^ @]*@&#x5B;^ @]*&quot;) \/\/Mail adresi oldu\u011funu do\u011frulayabilmek i\u00e7in.\r\n      ])),\r\n      meslek: new FormControl(&quot;&quot;, Validators.compose(&#x5B;\r\n        Validators.required\r\n      ])),\r\n      mesaj: new FormControl(&quot;&quot;, Validators.compose(&#x5B;\r\n        Validators.required\r\n      ]))\r\n    });\r\n  }\r\n  frmIletisim;\r\n  adi;\r\n  email;\r\n  meslek;\r\n  mesaj;\r\n  OnClickForm(data) {\r\n    alert(&quot;Ad\u0131 : &quot; + data.adi + &quot;\\nE-Posta : &quot; + data.email + &quot;\\nMeslek : &quot; + data.meslek + &quot;\\nMesaj : &quot; + data.mesaj);\r\n  }\r\n}\r\n<\/pre>\n<p>Component s\u0131n\u0131f\u0131m\u0131zda da g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere FormControl nesnelerinin constructerlar\u0131n\u0131n ikinci parametrelerinde <strong>Validators.compose<\/strong> komutuyla ilgili alana istenilen do\u011frulama ayarlamas\u0131 ger\u00e7ekle\u015ftirilmektedir. Dolay\u0131s\u0131yla model tabanl\u0131 validasyon i\u015flemi bu \u015fekilde sa\u011flanmaktad\u0131r.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/06\/Angular-4-\u2013-Forms-Validations.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/06\/Angular-4-\u2013-Forms-Validations.gif\" alt=\"Angular 4 \u2013 Forms Validations\" width=\"600\" height=\"370\" class=\"aligncenter size-full wp-image-8143\" \/><\/a><\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bir \u00f6nceki Angular 4 Forms Uygulamalar\u0131 ba\u015fl\u0131kl\u0131 makalemde Angular&#8217;da \u015fablon odakl\u0131 ve model odakl\u0131 olmak \u00fczere iki farkl\u0131 form yap\u0131s\u0131n\u0131 incelemi\u015f bulunmaktay\u0131z. Bu i\u00e7eri\u011fimizde ise form do\u011frulama i\u015flemleri olan Forms Validations y\u00f6ntemlerini inceleyece\u011fiz.&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":8143,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2144],"tags":[2146,2369,2370],"class_list":["post-8136","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-angular-4","tag-angular-4","tag-angular-4-forms-validations","tag-angular-4-validations"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=8136"}],"version-history":[{"count":7,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8136\/revisions"}],"predecessor-version":[{"id":8144,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8136\/revisions\/8144"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/8143"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=8136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=8136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=8136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}