




<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Karalama Defteri &#187; required</title>
	<atom:link href="http://weboutbox.com/tag/required/feed/" rel="self" type="application/rss+xml" />
	<link>http://weboutbox.com</link>
	<description>Klavye Kırıntıları</description>
	<lastBuildDate>Wed, 31 Mar 2010 21:55:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>jQuery ile Validation</title>
		<link>http://weboutbox.com/jquery-ile-validation/</link>
		<comments>http://weboutbox.com/jquery-ile-validation/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 08:16:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[required]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://blog.weboutbox.com/?p=69</guid>
		<description><![CDATA[Jquery ile bir çok validation (doğrulama) plugin&#8217;i bulmamız mümkün. Ancak küçük ve orta boyutlu projelerde kendimize has ve daha küçük boyutlu doğrulama ihtiyaçlarımız doğabilir. Kendi yazdığımız kodlar her zaman için daha rahat kontrol altında tutulabilir diye düşünüyorum. Jquery ile bir formda yer alan input elemanlarından &#8220;type=text&#8221; yani tipi yazı olanları kapsayan bir script yazalım. Doğrulama <a href="http://weboutbox.com/jquery-ile-validation/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>Jquery ile bir çok validation (doğrulama) plugin&#8217;i bulmamız mümkün. Ancak küçük ve orta boyutlu projelerde kendimize has ve daha küçük boyutlu doğrulama ihtiyaçlarımız doğabilir. Kendi yazdığımız kodlar her zaman için daha rahat kontrol altında tutulabilir diye düşünüyorum.</p>
<p>Jquery ile bir formda yer alan input elemanlarından &#8220;type=text&#8221; yani tipi yazı olanları kapsayan bir script yazalım. Doğrulama esnasında ihtiyacımız olan 3 şey ;</p>
<pre class="brush: html">
&lt;ul&gt;
	&lt;li&gt;O elemanın boş olup olamayacağı&lt;/li&gt;
	&lt;li&gt;Boş değil ise kaç karakterden az olamayacağı&lt;/li&gt;
	&lt;li&gt;Özelleştirilmiş hata mesajı&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>Oluşturduğumuz standart inputlarda bu alanlar tabii ki yer almamaktadır. Biz kendimiz oluşturmalı yada var olan attributeleri(özellikleri) kendimize göre kullanmalıyız.</p>
<p>Ben elemanın value(değer) kontrolü için <strong>required</strong>(gerekli) diye bir özellik eklemeyi tercih ettim. En az kaç karakter olacağını ise <strong>rel</strong> özelliğinden belirleyeceğim.Özelleştirilmiş hata mesajı için ise <strong>hata</strong> özelliğini kullanacağız.</p>
<p>Örnek input kodumuz :</p>
<p><img src="http://weboutbox.com/wp-content/uploads/2009/03/input.jpg" alt="" /></p>
<p>HTML tarafında yapmamız gerekenler bu kadar. Asıl konumuz olan js tarafında ise jQuery ile hiç zorlanmadan fonksiyonlarımızı yazabileceğiz. 3 farklı fonksiyon yazmamız gerekecek.</p>
<pre class="brush: html">
&lt;ol&gt;
	&lt;li&gt;Value kontrol işlemleri için&lt;/li&gt;
	&lt;li&gt;Hata mesajı göstermek için&lt;/li&gt;
	&lt;li&gt;Hata mesajını ekrandan silmek için&lt;/li&gt;
&lt;/ol&gt;
</pre>
<p>1. Fonksiyonumuz : <em><strong>inputValueKontrol</strong></em></p>
<p>Kısaca yapacaklarımızı anlatmak gerekirse : Öncelikle tüm inputları foreach ile döngü içerisine alarak kontrol ediyoruz. Required değeri 1 olanların valuelarına bakıyoruz. Eğer value uzunluğu (length) rel değerinden az ise bir hata mesajı çağırıyoruz yoksa işleme devam ediyoruz.</p>
<p>Kodlarımızı kısaca açıklayalım. İlk fonksiyonumuz olan <strong>inputValueKontrol</strong> ile başlayalım.</p>
<p><strong>$(&#8216;input&#8217;).each(fucntion(){}); </strong> ile tüm inputları bir diziye atadıktan sonra bir döngü içerisinde tek tek inceleyeceğiz.<br />
Döngümüz başladıktan sonra incelemekte olduğumz inputun <strong>required</strong> özelliğinin 1 olup olmadığını kontrol ediyoruz. Peki bir inputun özelliklerini nasıl alırız :</p>
<p><strong>$(this).attr(&#8220;required&#8221;)</strong> şeklinde, bulunduğumuz input&#8217;un attributelarından(özelliklerinden) istediğimize ulaşabiliriz.</p>
<p><strong>if($(this).attr(&#8220;required&#8221;)==&#8221;1&#8243;) </strong>satırı ile validation&#8217;a açık olan inputları seçiyoruz.</p>
<p><strong>var tur = $(this).attr(&#8220;rel&#8221;);<br />
var hata = $(this).attr(&#8220;hata&#8221;); </strong>Burada <strong>tur </strong>istenilen verinin uzunluğunu <strong>hata </strong>ise  istenilen veri uzunluğuna erişilmediği zaman gösterilecek hatayı dönderecektir bize. Eğer hata mesajımız yok ise daha önceden belirlediğimiz mesajı göstermesi için şu satırları ekleyelim :</p>
<p><strong>if(!hata){hata = &#8220;Bu alanı boş bırakamazsınız&#8221;;}</strong></p>
<p>Fonksiyonumuzun çalışmaya başladığı nokta input&#8217;un onblur event&#8217;ıdır.</p>
<pre class="brush: js">$(this).blur(function(){});</pre>
<p>Fonksiyonumuz başladığına göre gerekli kontrollerimize başlayabiliriz. Öncelikle <strong>tur</strong> değişkenimizin varlığına göre bir kontrol yapıyoruz ve <strong>required </strong>değeri 1 iken rel değeri 1&#8242;den büyük ve boş değilse yapılacakları belirlemek için şu satırları ekliyoruz :</p>
<pre class="brush: js">if(tur&amp;gt;1 &amp;amp; tur != &quot;&quot;){}</pre>
<p>İstenilen değer 1&#8242;den büyük ve boş değilse değeri kontrol ediyoruz. Eğer değer uzunluğu istenilen uzunluktan büyük değilse hata mesajını gösteriyoruz ve input&#8217;un kenarlıklarını şekillendiriyoruz.</p>
<pre class="brush: js">
var thisValue = $(this).val();
var thisValueLength = thisValue.length;
if(thisValueLength&amp;lt;tur){
$(this).css(&quot;border&quot;,&quot;solid 1px #f00&quot;);
hataMesaj(hata);
}else{
$(this).css(&quot;border&quot;,&quot;1px solid #C0C0C0&quot;);
hataMesajiSil();
}
</pre>
<p>Eğer<strong> </strong>değerler doğru isede input&#8217;un kenarlıklarını eski haline çeviriyoruz ve mevcut olan hata mesajını siliyoruz.</p>
<p>Birde tur (yani rel) değerinin olmadığı durumlar var. Bu inputların değerinin boş olamayacağı anlamına geliyor. Aynı işlemleri rel&#8217;i 1 kabul ederek tekrar uyguluyoruz.</p>
<pre class="brush: js"> var thisValue = $(this).val();
var thisValueLength = thisValue.length;
if(thisValueLength==0){
$(this).css(&quot;border&quot;,&quot;solid 1px #f00&quot;);
hataMesaj(hata);
}else{
$(this).css(&quot;border&quot;,&quot;1px solid #C0C0C0&quot;);
hataMesajiSil();
}
</pre>
<p>Inputların değer kontrol işlemlerine ait kodların inputValueKontrol fonksiyonunda olduğunu söylemiştik. Bu fonksiyona ait kodlar aşağıdaki gibidir.</p>
<p>Şimdi hata mesajlarını ekrana yazdıran fonksiyonumuz <strong>hataMesaj</strong>&#8216;ı yazalım.Bu fonksiyonun mantığı çok basit. Tek parametre ile gösterilecek mesajı alıyoruz ve bunu bir div etiketinin içerisine ekledikten sonra sayfaya ekliyoruz. Ekstra olarak yaptığımız tek işlem bu div etiketinin sayfada ekli olup olmadığını kontrol etmek. Eğer daha önceden eklenilmiş bir etiket var ise sadece içeriğini değiştiriyoruz ve en son hata mesjını ekliyoruz. En son olarakda bu mesajın 30 saniye sonra kendisini imha etmesini sağlıyoruz <img src='http://weboutbox.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>En son fonksiyonumuz ise ekrana yazdığımız hata mesajını kaldırma fonksiyonu. Bunu açıklamaya sanırım gerek yok.</p>
<p>Örnek uygulamaya <a href="/ornekler/validation.html">buradan</a> ulaşabilirsiniz.</p>
<div class="thanks_button_div" style="float: left; margin-right: 10px;"><div style="float: left; display: inline;"><input type="button" onclick="thankYouButtonClick(69, 'You left &ldquo;Thanks&rdquo; already for this post')" value="Teşekkürler: 7"
                class="thanks_button thanks_large thanks_grey1"
                style="background-image:url(http://weboutbox.com/wp-content/plugins/thanks-you-counter-button/images/thanks_large_grey1.png);  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#ed008c;"
                id="thanksButton_69_2" title="Click to left &ldquo;Thanks&rdquo; for this post"/></div><div id="ajax_loader_69_2" style="display:inline;visibility: hidden;"><img alt="ajax loader" src="http://weboutbox.com/wp-content/plugins/thanks-you-counter-button/images/ajax-loader.gif" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://weboutbox.com/jquery-ile-validation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
