Kurs Planı Ders 1: Tanıtım Uygulama: Kurs notlarında belirtilen uygulamalar. Ders 2: Verilerle Çalışmak Uygulama: Kurs notlarında belirtilen uygulamalar Ders 3: Program Yapısı Uygulama: Kurs notlarında belirtilen uygulamalar. Ders 4: Olaylar Uygulama: Kurs notlarında belirtilen uygulamalar. Ders 5: Etkileşimli Form Yaratmak Uygulama: Kurs notlarında belirtilen uygulamalar. Ders 6: JavaScript Nesneleri Uygulama: Kurs notlarında belirtilen uygulamalar.
Ders 1 DERS 1: JAVASCRİPT NEDİR? Dersin sonunda yapabilecekleriniz: -JavaScript dilinin temellerini açıklamak. -JavaScript'in Web sayfalarında nerede kullanılacağını açıklamak. -Temel bileşenler hakkında genel bilgiler vermek. I. JAVASCRİPT DİLİ Netscape Navigator 2.0 ile birlikte geliştirilen JavaScript dili istemci taraflı (client-side) script dilidir. Web sayfalarında dinamik içerik sağlamak ya da kullanıcıyla iletişim kurmak için JavaScript kullanılır. İlk başta yalnızca Netscape tarayıcıları için tasarlanan JavaScript, daha sonra diğer tarayıcılar tarafından da desteklenen genel bir scripting dili haline gelmiştir. Şu anda Navigator 4.0 tarafından desteklenen JavaScript 1.2 sürümü vardır. Microsoft Internet Explorer 3.0 ile JavaScript 1.0 ı desteklemektedir. JavaScript, Java dilinin bir Light versiyonu değildir. JavaScript kendi başına bir script dilidir. Genellikle HTML sayfalarında kullanıcı kontrolleri eklemek, formları kontrol etmek, hesaplamalar yapmak gibi işler için kullanılır. Tablo: Tarayıcılar ve JavaScript desteği. Tarayıcı Versiyonu JavaScript Desteği Netscape 2.0 1.0 Netscape 3.0 1.1 Netscape 4.0 1.2 Internet Explorer3.0 JScript 1.0 (approx. 1.0) Internet Explorer4.0 JScript 2.0 (approx. 1.1 + full DOM) A. JAVASCRİPT NEREDE KULLANILIR? JavaScript kullanımının iki ana alanı vardır: istemci taraflı ve sunucu taraflı script yazmak. Şu anda HTML sayfalara gömülü yazılan scriptlerin çoğu JavaScript kullanılarak yazılmaktadır. Sunucu taraflı JavaScript, aynı ASP gibi çalışmaktadır. Sunucu Taraflı JavaScript Sunucu taraflı JavaScript (SSJS) ise temel JavaScript e ek olarak nesneler ve işlevler katılarak veritabanlarına erişim, e-mail gönderme ve diğer işlemlerin yapılması sağlanır. SSJS, veritabanı temelli Web uygulamalarının yaratılmasını sağlar. CSJS, SSJS e karşı Aşağıdaki tabloda CSJS (Client-Side JavaScript) ve SSJS (Server-Side JavaScript) alanlarının birbiriyle karşılaştırılması yer almaktadır. Tablo: CSJS (Client-Side JavaScript) ile SSJS (Server-Side JavaScript) karşılaştırılması. CSJS SSJS Etiketler <SCRIPT> <SERVER> İşletme Client browser (interpreted) Server (compiled into SSJS byte code) Derleme Not compiled Application file (.web) İstemci JavaScript-enabled Any browser Sunucu Any server JavaScript-enabled SSJS hızlı ve etkin Web veritabanı uygulamaları geliştirmek için kullanılır. Aşağıdaki tabloda SSJS kullanımının üstünlükleri yar almaktadır: B. <SCRIPT> ETİKETİ Bir tarayıcının anlayacağı temel dil HTML'dir. JavaScript dilinin HTML belgesi içinde yazılabilmesi için <SCRIPT> etiketleri kullanılır. <HTML> <SCRIPT>... JavaScript kodu... </HTML>
<HTML> <SCRIPT> document.write ("Merhaba") </HTML> D. HTML BELGESİ İÇİNDE JAVASCRIPT YAZMAK Bir Web sayfası organizasyonunda JavaScript'leri Web sayfasına eklemek için değişik yollar vardır: HEAD bölümünde BODY bölümünde BODY içinde URL olarak. <HEAD> İçinde: Bir HTML belgesinde HEAD bölümü içinde <SCRIPT> etiketi kullanarak istediğiniz JavaScrip kodunu HTML belgesine ekleyebilirsiniz. Bu kodlar HTML sayfasının BODY kısmı yüklendikten sonra kullanıma hazır hale gelir. <HTML> <HEAD> <!-- function AlertTest( ) alert("dikkat!"); // --> </HEAD> <BODY> <BODY> İçinde HTML belgesinin BODY kısmında JavaScript kullanmak için iki yol vardır: Doğrudan çalışacak kodlar ve kullanıcı tarafından çalışacak kodlar: Doğrudan çalışacak JavaScript kodları <SCRIPT> etiketi kullanılarak HTML belgesinin istenilen yerine yazılır. Bu cümleler tarayıcı tarafından okunduğu anda yerine getirilir: <!-- document.write("son okunma tarihi" + document.lastmodified) //--> Daha çok kullanılan diğer bir yöntem ise kullanıcı tarafından bir olayın başlatılmasıyla bir JavaScript kodunun çalıştırılmasıdır. Örneğin bir düğmeye tıklamak gibi: <FORM> <INPUT TYPE="BUTTON" NAME="TestButton" VALUE="Tıkla" onclick="alerttest()"> </FORM> <SCRIPT Language="JavaScript"> function Onceki() if (xmldso.recordset.bof) alert("dosya başındasınız.") else xmldso.recordset.moveprevious() if (xmldso.recordset.bof)
xmldso.recordset.movefirst(); alert("bu ilk kayıt."); function Sonraki() if (xmldso.recordset.eof) alert("dosya sonundasınız.") else xmldso.recordset.movenext() if (xmldso.recordset.eof) xmldso.recordset.movelast(); alert("bu son kayıt."); <BODY> İçinde URL Olarak JavaScript kodu URL olarak da kullanmak mümkündür: <A HREF="javascript: alert('son!')">siteden Çık</A> II. JAVASCRİPT DİLİNİN ÖZELLİKLERİ JavaScript dilinin temel gramer yapısına bir bakalım: İşletme Sırası: HTML belgesinde JavaScript eklendiğinde, kodun işletimi sırasıyla yapılır. Ancak fonksiyon ve belli bir olaya (ONCLICK gibi) bağlı olan JavaScript kodlarının işletimi o anda yapılır. Değişkenler: Bir değeri içeren bellek adlarını ifade ederler. İşleçler (Operators): Değerler ya da değişkenler arasında toplama, çıkarma gibi işlemlerin yapılmasını sağlarlar. İşleçler +, *, /, - gibi işaretlerle kullanılır. İfadeler (Expression): Değişkenlerin, işleçleri ve deyimlerin bir araya gelerek oluşturdukları yapılara ifade derin. Örneğin: Ucret = Gün * Yevmiye formülü bir ifadedir. Deyimler (Statements): Deyimler belli bir komut ya da söz dizimi bileşenlerinin grubuna verilen addır. Örneğin bir komut ya da bir IF yapısı deyimi oluşturur: if (toplam>20) deyimler; else deyimler; Nesneler (Objects) Kendi değerleri, özellikleri ve işlemleri olan bileşenlere nesne (object) denir. JavaScript dilinde çok sayıda yerleşik nesne vardır. Fonksiyonlar (Functions) Bir JavaScript fonksiyonu diğer dillerdeki bir fonksiyon yordam ya da bir alt yordam anlamına gelir. Bir fonksiyon bir dizi işlemi yerine getirir ve bir sonuç döndürür. Ayrıca fonksiyonlar, parametre olarak kabul edilen birçok değer kabul ederler. function adi( ) deyim 1 deyim 2... deyim N
Case Sensitivity JavaScript case sensitive (büyük küçük harf duyarlı) bir dildir. Değişkenler ve diğer öğeler küçük ya da büyük yazılabilirler. Ancak A değişkeni ile a değişkeni birbirinden farklıdır. <!-- test= "küçük harf"; TEST= "BÜYÜK HARF"; document.writeln("test = "+test+"<br>"); document.writeln("test = "+TEST+"<BR>"); //--> Açıklamalar Bütün programlama dillerinde olduğu gibi, kod yazarken açıklama yazmak için kullanabileceğimiz bir karakter vardır. JavaScript te bu <! ve //-->. işaretlerinin arasıdır. <! bu bir açıklamadır //-->. JavaScript kodu diğer programlama dillerinde olduğu gibi deyimlerden (statements) oluşur. Bu deyimler atama, değerleri karşılaştırma ve işlemlerin yapılması için komutlar anlamına gelmektedir. A. DEĞİŞKENLER VE VERİ TÜRLERİ Değişkenler verileri saklarlar ve onlara erişimi sağlarlar. Bir değişken bir değeri işaret eder. Örneğin Ucret adlı değişkene bir kişinin ücret bilgisi konur. Değişkenler adlarıyla işaret edilirler. Bir JavaScript değişkeni belli kurallara uymak zorundadır: Kapsam Bir değişkene bir değer verildiğinde bu değer ne kadar zaman geçerli olacak? Bu sorunun yanıtı kapsam (scope) kavramını ortaya çıkarır. Bir değişkenin kapsamı global ya da lokal olabilir. Bir global değişkene sayfa üzerinde herhangi bir JavaScript ten erişilebilir. Lokal değişken ise değerin atandığı yordam içinde geçerlidir. Bir değişkene kendisine atama yaparak değer verilir: Ucret= 1000000; Bir fonksiyon yazıyorsanız, yerel bir değişken yaratmak istersiniz. Bu yerel değişkenler var sözcüğüyle tanımlanır: function YeniFonksiyon() var dongu=1; toplam=0;...deyimler... Yukarıdaki örnekte dongu adlı değişken YeniFonksiyon için yerel, toplam değişkeni ise tüm sayfa için genel (global) olacaktır. Değişkene bir değer atanır. Bu herhangi bir tür veri olabilir. Bununla birlikte JavaScript, verinin değişik türlerde olmasını bekler. Verinin türüne bağlı olarak değer üzerinde belli işlemler yapılabilir ya da yapılamaz. Örneğin iki string değer üzerinde aritmetik işlem yapılamaz. Tablo: Değişken Türleri Numbers Integer ve kayan noktalı sayılar içerir. Positif, 0 ya da negatif olabilir. Booleans True ya da False. Strings Karakter bilgi içeren bir değişkendir. Objects nesne= new Object(); Null Değersiz. Undefined Bir değişken yaratıldıktan sonra içerdiği tanımsın değer. İşleçler (Operators) İşleçler, iki ya da daha fazla değer üzerinde işlem yapılmasını sağlar. JavaScript içinde aritmetik ve hesaplama işleçleri olmak üzere iki tür işleç kullanılır:
Tablo: İşleçler + Toplama - Çıkarma * Çarpma / Bölme % Bölmede kalanı verir. Örneğin: 10 % 3 işlemi 1 değerini verir. ++ Tek artırım. Değer 1 artırılır. -- Tekli azaltma. - Negatifleştirme: İşlenenin negatif değerini döndürür. Karşılaştırma Karşılaştırma işleci, iki ya da daha çok değeri birbiriyle karşılaştırarak True ya da False olarak mantıksal bir değer döndürür. İşlenenler sayısal ya da karakter değer olabilir. Tablo : Karşılaştırma işleçleri == İşlenen değerler eşitse True döndürür.!= İşlenen değerler eşit değilse True döndürür. > Soldaki değer sağdakinden büyükse True döndürür. >= Soldaki değer büyük ya da eşitse True döndürür. < Soldaki değer sağdaki değerden büyükse True döndürür. <= Soldaki değer sağdaki değerden küçük ya da eşitse True döndürür. İkili İşleçler İkili işleçler birden çok karşılaştırma işlemini tek bir koşul ifadesi olarak birleştirirler. Örneğin VergiDurum =1 AND Ucret > 1000 ise gibi. Tablo : ikili işleçler. && "And" İki ifade de doğruysa True döndürür. "Or" İfadelerden birisi doğruysa True döndürür.! "Not" Negatifleştirme işlemi doğruysa True döndürür. Atama Deyimi Atama deyimi (=), bir değişkene bir değerin atanmasını sağlar. Değişkenlere türlerine ve tanımlamalarına uygun olan herhangi bir değer atanabilir. = Değerler değişkenlere sağdan atanırlar. toplam=100; toplam=(ucret+vergi+ekkazanc) += (ayrıca -=, *=, /=) Sağdaki değeri soldaki değişkene atar: Örneğin: toplam+=ekkazanc (ekkazanc değerini toplam değerine ekler ve sonucu toplam değerine ekler) III. Gözden Geçirme Soruları 1. JavaScript ne amaçla kullanılır? 2. Değişik JavaScript versiyonları vardır. Bunlar bir SCRIPT etiketi içinde kullanılabilir mi? 3. ONCLIK() ile onclik() olayının belirtiminde büyük/küçük harf durumu ne olur?
Ders 2 DERS 2: VERİLERİ TANIMLAMAK VE OPERATÖRLERLE ÇALIŞMAK Ders sonunda yapabilecekleriniz: -Verileri tanımlamak. -Operatörleri kullanmak. I. VERİLERLE ÇALIŞMAK JavaScript dilince yalnızca birkaç tane veri türü kullanılabilir. Bu veri türleri şunlardır: Numeric String Logical A. JAVA SCRİPT DEĞİŞKENLERİ Bir değişken (variable) verilerin bilgisayarın belleğinde tutulacağı alanları tanımlayan yerlerdir. Örneğin Ucret adlı bir değişken ücret bilgisinin tutulması için kullanılır. Ardından Ucret değişkeni çeşitli hesaplamalara sokulur. B. DEĞİŞKENLERİ TANIMLAMAK Java Script içinde değişkenler kendi adlarıyla tanımlanırlar. Ayrıca istenirse Var deyimi kullanılarak değişkenler açıkça tanımlanabilir. Ucret = 300000000 Var Ucret = 3000000 Ancak genellikle herhangi bir tür tanımı yapılmadan değişkenlere değerler atanabilir. Aşağıdaki deyimlerin her ikisi de doğrudur: Ucret = 300000000 Ucret = "Ahmet Örnek" C. DEĞİŞKEN ADLANDIRMA KURALLARI Bir değişkeni adlandırırken şu kulların izlenmesi gerekir: -Boşluk içermez. -255 karakteri geçemez. -Kapsama alanında tek olmalıdır. - işareti kullanılabilir. D. DEĞİŞKENLERİN KAPSAMI Bir değişken bir fonksiyon içinde tanımlandığında; değişken yalnız onun içinde geçerlidir. Bu durumda o değişken lokal (yerel) değişken olarak adlandırılır. Java Script kodunda bir form ortamı olmadığından, her Web sayfası bir modül gibi değişkenleri içerir. Diğer bir deyişle genel ve yerel değişken ayrımı yapmak için bir yapı yoktur. Her bir sayfa için değişkenler tanımlanır ve kullanılır. Ancak Sub yordam ve fonksiyonlar içinde tanımlanan değişkenler, yalnızca onlar çağrıldığında aktifleşir ve kullanılır. E. SABİTLER Sabitler (constants) literal olarak bilinir. 3.14 3.14 // Pi sayısı sabiti "JavaScript çok büyük!" // Bir sabit string değer F. İFADELER İfadeler (expressions) bir ya da daha çok operatör ve veri içerir. 3 + 12 // İki sabit Ucret + 2 // Değişken ve sabit
Operatörler (İşleçler) JavaScript çok değişik operatörleri destekler. Bu operatörlerin bazıları aritmetik işlemler için, bazıları karşılaştırma işlemleri içindir. Diğer bir kısmı ise mantıksal (logical) işlemler ve artırma/eksiltme (increment/decrement) işlemleri içindir. G. DEĞİŞKENLER VE VERİ TÜRLERİ Değişkenler verileri saklarlar ve onlara erişimi sağlarlar. Bir değişken bir değeri işaret eder. Örneğin Ucret adlı değişkene bir kişinin ücret bilgisi konur. Değişkenler adlarıyla işaret edilirler. Bir JavaScript değişkeni belli kurallara uymak zorundadır: NOT: Değişkenler ve operatörler hakkında 1. hafta dokümanlarında bilgi yer almaktadır. NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için www.farukcubukcu.com adresine bakınız. H. DİZE OPERATÖRÜ Ana dize (string) operatörü iki dize bilgiyi (string) birleştirmek için kullanılır: Dize operatörünün kullanıldığı bir örnek. document.write("javascript " + "büyük!"); alert("hello "+adi); ikidize= "dize 1" + dize 2"; <SCRIPT> adi=prompt("adiniz?",""); alert("hello "+adiniz); I. MANTIKSAL OPERATÖRLER İkili işleçler birden çok karşılaştırma işlemini tek bir koşul ifadesi olarak birleştirirler. Örneğin VergiDurum =1 AND Ucret > 1000 ise gibi. Mantıksal operatörler ikili (boolean) ifadeleri birleştirmek için kullanılırlar. Üç tane operatör vardır: Tablo : ikili işleçler. && "And" İki ifade de doğruysa True döndürür. "Or" İfadelerden birisi doğruysa True döndürür.! "Not" Negatifleştirme işlemi doğruysa True döndürür. AND operatörü her iki ifadenin de doğru olması durumunu sağlar: if ((yasi < 30) && (rengi== "sarisin")) tercih = "çok iyi" OR operatörü ise yalnızca birinin doğru olmasını kontrol eder: if ((yasi < 30) (rengi== "sarisin")) tercih = "idare eder" IF deyimi ve mantıksal operatörlerin kullanılması: <SCRIPT Language="JavaScript"> gazete= confirm("gazete okur musunuz?"); dergi= confirm("dergi okur musunuz?"); if (gazete && dergi) alert("kültürlü!"); else if (gazete) alert("yalnızca haber takip ediyorsunuz!"); else if (dergi) alert("magazin takip ediyorsunuz!"); else alert("hiçbir şey okumuyorsunuz!"); J. BİTWİSE OPERATÖRLERİ Bitwise operatörleri işlenen bilgileri 32 bit veri olarak işler. Örneğin 3 sayısı 0011 olarak gösterilir. Bitwise operatörler işlemlerini ikili değer üzerinde yapar, ancak sonuçları standart JavaScript sayısal değeri olarak döndürürler.
Tablo: Bitwise Operatörlerinden bazıları Bitwise operatörleri Kullanımı Açıklama Bitwise AND a & b İki işlenenin de bir olduğu durumlarda bir döndürür. Bitwise OR a b İki işlenenden birisinin bir olduğu durumlarda bir döndürür. Bitwise NOT ~ a İşlenin bitlerini ters çevirir. Left shift a << b A'yı B'nin ikili gösterimi çinde sola kaydırır. II. UYGULAMA 1. Ad ve Soyad gibi iki metin bilgiyi birleştirin: ad = "ayşe" soyad = "yılmaz" adsoyad =? 2. Aşağıdaki tabloya göre; ekrandan alınan kilo, yaş ve boy değerlerini değerlendirin. Tablo içindeki aralığın dışındaki değerleri "normal dışı" olarak, tablo içindeki değerleri ise normal olarak değerlendirin. YAŞ BOY KİLO 10-20 150-180 40-80 21-30 150-180 50-90 31-40 150-180 55-95 III. GÖZDEN GEÇİRME 1. String operatörleri nelerdir? 2. Bitwise operatörleri nelerdir? Ne amaçla kullanılabilir?
Ders 3 DERS 3: PROGRAM YAPISI Dersin sonunda yapabilecekleriniz: -JavaScript program yapısını açıklamak. -Fonksiyonları açıklamak. I. PROGRAM YAPISI Bir Javascript programı, sınırlı bir alanda ya da belli etiketler arasında yazılan komut ve diğer bileşenlerden oluşur. A. DEYİMLER Deyimler scriptin akışını sağlarlar. JavaScript içinde koşullu ifadeler, döngüler, nesne işlemler ve diğer tanımlama işlemleri belli deyimlerle yerine getirilir. Deyimler dilin komutlarıdır denebilir. JavaScript deyimleri bir noktalı virgül (;) işareti ile sonlanır. Bu genellikle bir koşul olmasa da, birden çok deyimin aynı satırda yazılması için bir zorunluluktur. B. KOŞULLU İFADELER Koşullu ifadeler program akışı içinde yönlenme ve karar verme olanağı sağlar. 1. if...else If deyimi bir koşulu değerlendirerek bir blok deyimin işletilmesini ya da işletilmemesini sağlar. Seçimlik olarak bir else deyimi ayrıca ikinci bir blok deyimin birinci bloğa alternatif olarak işletilmesini sağlar. Basit biçimde else olmadan koşula bağlı olarak deyim işletilir: Eğer koşul doğruysa deyim işletilir, koşul doğru değilse deyimler atlanmış olur: Yapısı: if (koşul) deyimler-1; else deyimler-2; 2. switch (Netscape & MS IE 4) Case yapısı olarak bilinir. Bir değere göre değişik seçeneklerin işletilmesini sağlayan bir diğer karar yapısıdır. Genel Yapısı: switch (ifade) case etiket: deyim; break; case etiket: deyim; break;... default : deyim; Örneğin bir değere göre değişik hesaplamalar yapılacaksa bu yapı kullanılabilir: switch (ucret) case >0 AND <1000 : deyimler; break; case ">1001 AND <10000: deyimler; break; case >10001 AND <20000 : deyimler; break; default : deyimler;
3. Döngüler JavaScript kontrol yapıları içinde değişik döngüler vardır. Bunların başında for, do while ve breakcontinue yapısı gelir. NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Burada adı geçen ticari ünvanlar ve markalar bilgi amaçlı kullanılmışlardır ve kendi imtiyazlarına sahiptirler. Bu dokümanlar ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için www.farukcubukcu.com adresine bakınız. For...Next Kullanımı: for döngüsünde koşul sağlaması bozuluncaya kadar döngü sürdürülür. Örneğin bir sayısal değerden büyük oluncaya kadar döngüyü sürdürmek gibi. Yapısı: for (başlangıç değeri; koşul; artırım) deyimler; for (i=0; i<10; i++) deyimler; Do...While Kullanımı: Diğer bir döngü deyimi ise blok deyimi belli bir koşulun false oluncaya kadar sürdürmesini sağlar. Yapısı: do deyimler; while (koşul) While Kullanımı: Yalnız başına While'ın kullanımı ise şu şekildedir: Yapısı: while (koşul) deyimler; Nesne İşlemleri: Nesne işlemlerinde yaygın olarak kullanılan yapılardan birisi For..in dir. For...in Yapısı: For-in yapısı nesne işlemlerinin bir döngü içinde yapılmasını sağlar. Yapısı: for (değişken in nesne) deyimler; Örneğin araba adlı bir nesnenin renk, fiyat, motor, silindir, model gibi çok sayıda değişik özellikleri şu şekilde listelenebilir: var kayit= "araba<br><br>" for (var ozellik in araba) kayit+= ozellik+ " = " + araba[ozellik] + "<BR>" kayit+= "<br>" document.write(kayit) II. FONKSİYONLAR Bir fonksiyon bir dizi deyimin bir blok olarak kullanılmasını sağlar. Fonksiyonlar, çağırılarak çalışan bir çalışma şekline sahiptir. Bunun anlamı, fonksiyon bir hesaplamayı yapar.
Bu hesaplamadan yararlanabilmek için fonksiyon çağırılır ve hesaplamadan yararlanır. Bir fonksiyon bir ad ve argümanlarla birlikte tanımlanır. Argümanlar alınacak değerleri tanımlayan değişkenlerdir. Function adi (argument1,argument2,.. ) deyimler; Nadiren bir fonksiyon bir argüman değeri almaz. Bu durumda fonksiyonlar boş parantezlerle tanımlanır. Yapısı: Function islemyap()... End Function function usal(x,y) toplam=1; for (j=0; j<y; j++) toplam*=x; return toplam; //x değeri y kuvvetinde üssü alınır. function formac(form) var pencereozellikleri = "height=400,width=600,location=no," + "scrollbars=no,menubars=no,toolbars=no,resizable=yes"; var URL = form.adres.options[form.adres.selectedindex].value; popup = window.open(url,"menupopup",pencereozellikleri); </script> <SCRIPT> function hello(msg) document.write(msg, "<br>"); var message = "Merhaba!"; hello(message); A. FORM ALANLARININ DOĞRULANMASINDA FONKSİYON KULLANIMI (FORM VALİDATİON) Bir HTML formu üzerinden girilen alanların denetiminin yapılması (boş mu ya da istenilen türde bir sayı mı), uygulamada çok kullanılan bir kullanımdır:.<form action="giris.asp" method="post" onsubmit="return checkform(this);"> <input type="text" name="e-mail"> <!-- function checkform ( form ) // alan kontrolü if (form.email.value == "") alert( "lüften e mail bilginizi girin" ); form.email.focus(); return false ; // blok sonu
return true ; //--> III. UYGULAMA HTML belgesinde alanların kontrolü için bir uygulama geliştirin: <HTML> <HEAD> </HEAD> <BODY> <!-- function valid(form) var field = form.yasi; var yasiniz= parseint(field.value); if (!yasiniz) alert("yasınızı girin."); return false; else if (yasiniz>= 18) alert("bilgilerinizi için teşekkür ederiz."); return true; else return false; // --> <FORM name = bilgiformu onsubmit="return valid(this)"> Yaşınız :<BR><INPUT TYPE="text" NAME="yas" SIZE="2"><BR> Adınız ve Soyadınız:<BR><INPUT TYPE="text" NAME="ad" SIZE="40"><BR> Diger Bilgileriniz:<BR><TEXTAREA NAME="diger" COLS="40" ROWS="5"></TEXTAREA><BR> <INPUT TYPE="submit" VALUE="gönder"> </FORM> </BODY> </HTML> IV. GÖZDEN GEÇİRME 1. Javascript kodu nerede ve nasıl bir yapıda yazılır? 2. Döngü kurmak neden gerekir ve JavaScript içindeki döngü yapıları nelerdir?
Ders 4 DERS 4: OLAYLAR Ders sonunda yapabilecekleriniz: -Olayları açıklamak. -Olayları kullanıcıdan gelen hareketler olarak değerlendirmek. I. OLAYLAR JavaScript programları da genellikle olay temellidir. Olaylar, HTML sayfalarında genellikle kullanıcı etkileşimi sırasında oluşan şeylerdir. Örneğin kullanıcının faresiyle bir düğmeye tıklaması Click olayının oluşmasına neden olur. Bir olay, bir olay tutucuyu tetikler. Yani dugme1 adlı bir düğmeye tıklandığında dugme1_onclick olay tutucusu tetiklenir. <FORM> <BUTTON onclick='alert("en büyük bizim takım")' VALUE="Tıklayın"></FORM> Tablo: Olaylar ve oluştukları yer Olay Açıklama HTML elemanı onblur Odaklanmanın kaybedilmesi durumunda oluşur. onchange İçindeki değerin değiştirilmesi durumunda ya da odaklamanın kaybedilmesi durumunda oluşur. <BUTTON>, <INPUT>, <LABEL>, <SELECT>, <TEXTAREA> <INPUT>, <SELECT>, <TEXTAREA> onclick Tıklandığında oluşur. Birçok eleman için geçerli. ondblclick Çift tıklanıldığında oluşur. Birçok eleman için geçerli. onfocus Odaklanıldığında. Alanın aktifleştirilmesi gibi.. <BUTTON>, <INPUT>, <LABEL>, <SELECT>, <TEXTAREA> onkeydown Bir tuşa basıldığında. Birçok eleman için geçerli. onkeypress Bir tuşa basıldığında ve bırakıldığında. Birçok eleman için geçerli. onkeyup Bir tuşun bırakılması durumunda. Birçok eleman için geçerli. onload Pencerenin ya da dokümanın yüklemesi durumunda. <BODY>, <FRAMESET> onmousedown Bir fare düğmesine tıklanması durumunda. Birçok eleman için geçerli. onmousemove Farenin hareket ettirilmesi durumunda. Birçok eleman için geçerli. onmouseout Farenin odaklandığı elemandan ayrılması. Birçok eleman için geçerli. onmouseover Farenin bir eleman üzerine odaklanması. Birçok eleman için geçerli. onmouseup Bir fare düğmesinin bırakılması durumunda. Birçok eleman için geçerli. onreset RESET düğmesine tıklanarak form alanlarının temizlenmesi durumunda. <FORM> onselect Metinin seçilmesi durumunda. <INPUT>, <TEXTAREA> onsubmit SUBMIT düğmesine tıklanarak formun sunucuya gönderilmesi durumunda. <FORM> onunload Tarayıcının var olan dokümanı ya da penceresi serbest bırakması durumunda. <BODY>, <FRAMESET> Alan Kontrolü. <INPUT TYPE = "TEXT" SIZE = 20 NAME="adi" ONCHANGE="alankontrol()" > Yukarıdaki satırda, ziyaretçi metin alanına veri girdiğinde alankontrol() adlı fonksiyon çalıştırılır. <HEAD> function alankontrol() alert ("alan değeri geçersiz") </script> </HEAD>
<BODY> <form> <INPUT TYPE = "TEXT" SIZE = 20 NAME="adi" ONCHANGE="alankontrol()" > </form> NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Burada adı geçen ticari ünvanlar ve markalar bilgi amaçlı kullanılmışlardır ve kendi imtiyazlarına sahiptirler. Bu dokümanlar ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için www.farukcubukcu.com adresine bakınız. A. ONCLİCK OLAYI Ziyaretçinin tarayıcı üzerindeki bir düğmeyi tıklaması durumunda Click olayı oluşur. Olaya Göre Fonksiyonun Çağırmak <HEAD> function mesaj() alert ("mesaj") </script> </HEAD> <BODY> <form> <INPUT TYPE = "button" NAME="Dugme1" VALUE="Düğme1" ONCLICK="mesaj()" > </form> </BODY> B. ONSUBMİT OLAYI Submit olayı yine bir düğme türünden ortaya çıkar ve istemci bilgilerini sunucuya gönderir. Submit olayını kontrol etmek için bir form yapısı gerekiyor. Ve genellikle istemci tarafında çalışan bir bilgi formunun ardından, sunucu tarafında çalışan bir karşılık formunu işleme sokan Submit düğmesi kullanılır. NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Burada adı geçen ticari ünvanlar ve markalar bilgi amaçlı kullanılmışlardır ve kendi imtiyazlarına sahiptirler. Bu dokümanlar ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için www.farukcubukcu.com adresine bakınız. İPUCU: ASP programlamasında çok sık yer alan bilgi formlarının kayıt edilmesinde; istemci tarafında çalışan bir bilgi formunun ardından, sunucu tarafında çalışan bir karşılık formunu işleme sokan submit düğmesi kullanılır. Aşağıdaki biçimde formun Submit düğmesinin bulunduğu satıra alanların kotrolü için bir fonksiyon konur ve fonksiyonun True dönmesi durumunda submit edilir. Aksi takdirde Scriptlerde yazılan hatalar kullanıcıya gösterilir. Örnek : Submit Olayı Submit sırasında alanların kontrolü OnSubmit="return (alankontrol())" <FORM Method= "Post" Action=" " Name = Frm1 OnSubmit="return (alankontrol()=;" > Yukarıdaki örnekte formun Submit edilmesiyle birlikte alankontrol fonksiyonu devreye girer. <HTML> <HEAD> <TITLE>JavaScript ornegi </TITLE> <!--
function testadi(form) if (form.adi.value == "") alert("adinizi girmediniz"); return false; else return true; function testemail(form) if (form.email.value == "" form.email.value.indexof('@',0) == -1) alert("e-mail yanlis"); return false; else return true; function testalanlar(form) if (testadi(form) && testemail(form)) form.submit(); else return false; // --> </HEAD> <BODY> <CENTER> <H1>JavaScript Form Alan Kontrolü </H1> </CENTER> <FORM NAME="test" METHOD="POST" ACTION=" "> Name: <INPUT TYPE="TEXT" NAME="adi"><BR> E-mail: <INPUT TYPE="TEXT" NAME="email"><BR> <BR> <INPUT TYPE="SUBMIT" NAME="Send" VALUE="Gönder" onclick="testalanlar(test)"> </FORM> </BODY> </HTML> C. ONRESET OLAYI Reset olayı ise formdaki bütün bilgilerin silinmesini sağlar. Bu işlem genellikle bilgi girişi sırasında yapılan yanlışlardan dolayı form üzerindeki alanları silinmesini sağlar. OnReset Oayı <HEAD> function kontrol() return confirm ('silmek istiyormusunuz?') </script> </HEAD> <BODY> <form ACTION="javascript5.htm" METHOD = "POST" ONRESET = "return kontrol()"> <INPUT TYPE = "RESET" NAME="Dugme1" VALUE="Dügme1" > </form> </BODY>
NOT: Bit HTML belgesinde HEAD ve BODY olmak üzere iki ana bölüm olduğunu kabul edersek, HEAD kısmı tanımlama kısmı, BODY kısmı ise tarayıcı tarafından işletilecek HTML etiketlerini içerir. Bu nedenle scriptler de genellikle HEAD kısmına yazılır. II. UYGULAMA Aşağıdaki menü uygulamasını JavaScript olarak yapın: <BODY BGCOLOR = #ff5500> <FONT SIZE="5"> <p align="center"> <img src="/araclar/aracresmi.bmp" width="400" height="120"> </p> Bir islem seçin: <TABLE> <TR> <TD> <A HREF="arackaydet.asp" ONMOUSEOVER="window.status='Yeni bir araç girin'; return true" ONMOUSEOUT="window.status=''"> <FONT SIZE="5"> Yeni Bir Araç Bilgisi Girmek </FONT> </A> </TD> <TR> <TD> <A HREF="araclistele.asp" ONMOUSEOVER="window.status='Araç listesi'; return true" ONMOUSEOUT="window.status=''"> <FONT SIZE="5"> Araçlari Listelemek </FONT> </A> </TD> </TR> <TR> <TD> <A HREF="kidemlistele.asp" ONMOUSEOVER="window.status='Kidem listesi'; return true" ONMOUSEOUT="window.status=''"> <FONT SIZE="5"> Kidemleri Listelemek </FONT> </A> </TD> </TR> </FONT> </TABLE> </FONT> </BODY> III.GÖZDEN GEÇİRME 1. Olay nedir? 2. Submit olayını tanımlayın?
Ders 5 DERS 5: JAVASCRİPT NESNELERİ Dersin sonunda yapabilecekleriniz: -JavaScript nesnelerini açıklamak. I. JAVASCRİPT NESNELERİ JavaScript, bütün Web sayfasını ve tarayıcıyı nesneler topluluğu olarak görür. Bu sisteme DOM denir. Adını çok duyduğumuz bu DOM (Document Object Model), JavaScript içindeki bütün nesneleri ifade etmektedir. Hiyerarşik olarak çok sayıda nesneyi içerir. NetScape ve Microsoft tarayıcıları için DOM nesneleri farklı olduğu için yazılan kodlar uyumlu değildir. ŞEKİL: JAVASCRİPT NESNELERİ. BAKINIZ: (aşağıda) A. WİNDOW NESNESİ Window nesnesi tarayıcının kendisidir. Window nesnesi birçok metot, özelliğe ve olay sahiptir. Örneğin pencerenin (window) açılması ve kapatılması birer olaydır. Aşağıdaki örnekte Windows nesnesinin olaylarıyla uyarı ve onaylama işlemleri yapılmaktadır: Window Açma ve Kapatma <HTML> <HEAD> <TITLE> Örnek </TITLE> <!-- function uzmana_sor() var soru= prompt("sorunuzu ne?","") if (soru== "") uzmanpenceresi=window.open("","","width=300,height=200"); if (uzmanpenceresi!= null) var Pencerebilgi = "<HTML><BODY><H1 ALIGN=CENTER>Merhaba!</H1><HR>" Pencerebilgi+= "<CENTER><FORM><INPUT TYPE='BUTTON' VALUE='CLOSE' onclick='self.close()'></form>" Pencerebilgi+= "</CENTER></BODY></HTML>" uzmanpenceresi.document.write(pencerebilgi); return false; // --> </HEAD> <BODY> <CENTER> <H1>JavaScript Örnek</H1> <HR> <FORM> <BR> <INPUT TYPE="BUTTON" VALUE="Uzmanına Sor" onclick="uzmana_sor()"> </FORM> </CENTER> </BODY> </HTML> NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Burada adı geçen ticari ünvanlar ve markalar bilgi amaçlı kullanılmışlardır ve kendi imtiyazlarına sahiptirler. Bu dokümanlar ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için www.farukcubukcu.com adresine bakınız.
B. FORM NESNESİ Form nesnesi DOM nesnesinin ana nesnesidir. Form üzerindeki alanlar bu nesne aracılığıyla kullanılır: form alanlarının kontrolü:.<form action="giris.asp" method="post" onsubmit="return checkform(this);"> <input type="text" name="e-mail"> <!-- function checkform ( form ) // alan kontrolü if (form.email.value == "") alert( "lüften e mail bilginizi girin" ); form.email.focus(); return false ; // blok sonu return true ; //--> II. GÖZDEN GEÇİRME 1. JavaScript menülerini açıklayın? 2. Form menüsünün focus() metodunun işlevini açıklayın.
Ders 6 DERS 6: ETKİLEŞİMLİ FORMLAR YARATMAK Dersin sonunda yapabilecekleriniz: -Formlar üzerinde işlem yapmak. -Form doğrulama (validation) işlemini yapmak. I. JAVASCRİPT'TE FORM DOĞRULAMA Web sayfalarında çok sık yapılan bir işlem form doğrulama işlemidir. Örneğin bir sipariş formunun alanlarının doldurulmasının ardından form alanlarının kontrolü gerekir. Bu işleme doğrulama (validation) denir. <HTML> <HEAD> <TITLE>JavaScript Örnek </TITLE> <!-- function Form1(form) if (form.adi.value == "") alert("adiniz?"); return false; else return true; function email(form) if (form.e-mail.value == "" form.e-mail.value.indexof('@',0) == -1) alert("e-mail adresiniz geçerli değil!"); return false; else return true; function Form1 (form) if (Form1(form) && email(form)) form.submit(); else return false; // --> </HEAD> <BODY> <CENTER> <H1>JavaScript Form Doğrulama </H1> </CENTER> <FORM NAME="deneme" METHOD="POST" ACTION="kayit.asp"> Name: <INPUT TYPE="TEXT" NAME="adi:"><BR> E-mail: <INPUT TYPE="TEXT" NAME="e-mail"><BR> <BR> <INPUT TYPE="BUTTON" NAME="Gonder" VALUE="Gönder" onclick="form1(kontrol)"> </FORM> </BODY> </HTML> Diğer bir form kontrol işlemi..<form action="giris.asp" method="post" onsubmit="return checkform(this);">
<input type="text" name="e-mail"> <!-- function checkform ( form ) // alan kontrolü if (form.email.value == "") alert( "lüften e mail bilginizi girin" ); form.email.focus(); return false ; // blok sonu return true ; //--> II. UYGULAMA Aşağıdaki HTML giriş formu için doğrulama scripti yazın. <HTML> <HEAD> <TITLE> ÖRNEK FORM </TITLE> </HEAD> <body> <form name=tatil action=tatilkayit.asp method=post> Tarih: <input type=text Name= "tarih"> <br> Otel: <input type=text Name= "otel"> <br> Sure: <input type=text Name= "sure"> <br> <input type=submit Name= "kaydet" value="kaydet"> </form> </body> </HTML> III. GÖZDEN GEÇİRME 1. Form doğrulama nedir? Hangi işlemlerde kullanılır?