Windows
ortaminda çalisanlar bir pencereye tiklandiginda bu pencerenin renginin
degistigini bilirler. Bunun nedeni pencerenin kullanicidan komut almaya
hazir olmasidir. Kullanicidan ayni anda sadece bir pencere komut alabilir.
Bunun için de pencerenin aktif hala geçmesi gerekir. Bu durum javascript
içinde aynidir. Mesela bir text alanina yazi yazabilmemiz için bu text
alaninin aktif hale gelmesi gerekir. Bir alanin aktif hale gelmesine focus
bir alanin aktif hale geçtigini belirten evente ise onFocus
adiveriyoruz.
Yine bir pencere focus durumundan çiktiginda yani kullanici ile
iletisimi bittigi andaki duruma ise blur, bu durumu kontrol eden
evente ise onBlur adi veriyoruz.
onFocus ve onBlur eventlerini text alanlarinda ve texterea alanlarinda
kullanabiliriz. Simdi bu konuda bir örnek görelim. Yapacagimiz örnekte
iki text alani açacagiz. Text alanlari blur durumunda ikin yazi
yazamazsiniz seklinde bir yazi yazilacak, durum focus oldugunda ise artik
yazi yazabilirsiniz yazisi yazilacaktir. Bu durumu daha net bir sekilde görmek
için iki text alani kullanacagiz. Öncelikle form bölümünü görelim.
<form name=focus>
<input type=text size=35 name=textalani1
onFocus="yazilir(1)" onBlur="yazilmaz(1)">
<input type=text size=35 name=textalani2
onFocus="yazilir(2)" onBlur="yazilmaz(2)">
</form>
Formu hazirlarken öncelikle forma bir ad verdik.
name
parametresi ile verdigimiz bu isim focus dur. Bu isim seçimliktir.
Dilediginiz bir ismi verebilirsiniz.
Yine input parametresi ile bir text alani olusturduk. Bu alana da bir isim
veriyoruz. Ayrica ismin yaninda onFocus="yazilir(1)"
seklinde bir tanimlama ile focus aninda yazilir(deger) fonksiyonunun çalismasini
sagliyoruz. 1 olarak kullandigimiz deger ise fonksiyona hangi text alanina
yazilacagini belirlemek için kullaniyoruz.
onBlur="yazilmaz(1)" seklinde tanimlama ilede blur
halinde yazilmaz(deger) fonksiyonunu çagiriyoruz. Ikinci text kutusu içinde
ayni tamimlamalari yapiyoruz.
Burada dikkat etmemiz gereken javascriptin bir formu ve/veya form
elamanini kullanabilmesi için forma ve elemanlarina mutlaka birer isim
vermemiz gerçegidir. Nesnesel bir programlama dili olan javascript
formalari nesne olarak görüyor ve mutlaka bir isim verilmesini istiyor.
Simdi scriptimizi görelim.
<script>
<!--
function yazilir(hangiAlana){
if(hangiAlana==1) document.focus.textalani1.value="Yazi
yazabilirsiniz : ";
if(hangiAlana==2) document.focus.textalani2.value="Yazi
yazabilirsiniz : ";
}
function yazilmaz(hangiAlana){
if(hangiAlana==1) document.focus.textalani1.value="Yazi
yazamazsiniz!!!";
if(hangiAlana==2) document.focus.textalani2.value="Yazi
yazamazsiniz!!!";
}
//-->
</script>
Öncelikle yazilir(hangiAlana) fonksiyonunu inceleyelim. Bu
fonksiyon onFocus halinde çalisacaktir. Fonksiyona girilen geger local
hangiAlana degiskenine aktarilir. Bu degisken hangi text kususuna degerin
girilecegini kontrol eder. Sonra bir kontrol blogu bulunuyor. Ilk kontrol
ilk text kutusunun focus oldugunu kontrol eder. Eger ilk text kutusu focus
haline gelmisse su islemi yapar. Önce kisa bir açiklama; document bizim
html belgemize javascriptin verdigi isimdir. <html>...</html>
taglari arasinda kalan bölümdür. focus ise olusturdugumuz forma
verdigimiz isimdir. textalani1 ilk olusturdugumuz text alanina vedigimiz
isimdir ve value ise text alaninin içerigidir; yani bu alana
yazili olan ve/veya yazilacak degerdir. Bu kisa açiklamadan sonra ki
nesne yapisi bölümünde daha ayrintili olarak görülecek yaptigimiz isi
görelim.
if(hangiAlana==1) eger textalani1 focus durumuna geçti ise;
document.focus.textalani1.value= sayfamizdaki focus formunun
textalani1 adli bölümünün degerini
"Yazi yazabilirsiniz : "; Yazi yazabilirsiniz : olarak
degistir. Yapilan islem bu kadardir. Yine ikinci kontrol blogu ise ikinci
text alaninin focus haline gelmesi durumunda ayni islemi yapacaktir.
Ikinci fonksiyonumuz olan yazilamaz(hangiAlana) fonksiyonu da
ayni mantikla çalisir. Text alani blur haline geldiginde bu fonksiyon çalisir
ve blur haline gelen textalanina Yazi yazamazsiniz!!! uyarisini yazar.
Peki ne isimize yarayacak focus ve blur durumlari. Bu program yazarken
bize yardimci olacaktir. Bazi durumlarda açiklama yapmak, bazi durmlarda
ise bir alanin isaretlendigi ani tespit etmek ve hemen bir müdahale
yapmak için kullanabiliriz. Meselan bir alan focus durumuna geçtiginde
yeni bir pencere açabilir ve blur durumuna geçtiginde bu pencereyi
otomatikman kapatabiliriz. focus durumuna geçildigini bir mesaj olarak
verebiliriz gibi. Simdi bu konuyla ilgili örnegimizi deneyelim.
Yazı yazamazsiniz
:
Yazı yazabilirsiniz :
Dikkat ettiyseniz yazi yazilacak hale gelen kutuya
Yazi
yazabilirsiniz : uyarisi yaziliyor. Blur durumuna düsüldügünde ise Yazi yazamazsiniz!!! uyarisi yaziliyor. Iki textalani da blur
haline düstügünde; bunu sayfanin bos bir yerini tiklayarak veya baska
bir pencereyi tiklayarak görebiliriz; iki textalaninada Yazi
yazamazsiniz!!! uyarisi yazilacaktir
|