DERS 3: VBSCRİPT VE
JAVASCRİPT TEMELLERİ
Dersin sonunda
yapabilecekleriniz:
-VBScript dilini tanımlamak.
-VBScript ile programlamanın temellerini açıklamak.
-JavaScript dilini tanımlamak.
-Olayları açıklamak.
I. VBSCRİPT DİLİ
VBScript, Visual Basic
programlama dillerinin yeni bir üyesidir. Özellikle Web sayfaları için dinamik
içerik yaratmak için geliştirilmiştir. Microsoft Internet Explorer 3.0’den
itibaren tarayıcılar, HTML belgelerindeki VBScript kodlarını yorumlarlar. VBScript
kullanarak, form verilerini kontrol edebilir ya da özel sayfalar
geliştirebilirsiniz. Visual Basic ya da Visual Basic for Applications dillerini
de biliyorsanız, VBScript size çok kolay gelecektir.
VBScript, istemci ve sunucu
taraflı script yazmak için kullanılmaktadır. Sunucu taraflı script yazma
işleminde yazılan kod sunucuda çalışır. ASP programlamasında özellikle
kullanıcı arabirimini etkin hale getirmek için ve HTML'nin kısıtlamalarından
kurtulup etkileşimli kontroller yaratabilmek için istemci taraflı script yazmak
için VBScript kullanılır.
Örnek : Düğme Kullanımı
Aşağıdaki VBScript kodu
sayfa üzerindeki düğmeye tıklanarak bir mesaj kutusu ekrana çıkarılır. Script
kodunun HTML belgesi içinde ayrı bir yere yazıldığına dikkat ediniz.
<HTML>
<HEAD>
<TITLE> Örnek Script
</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!-- düğme tıklayınca
çalışacak yordam
Sub Button1_OnClick
MsgBox "Ne haber"
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<INPUT
NAME="Button1" TYPE="BUTTON" VALUE="Tıklayın...">
</FORM>
</BODY>
</HTML>
A. ASP İÇİNDE VBSCRİPT
KULLANMAK
ASP kodlaması içinde VBScript
kodlaması <SCRIPT> etiketleri arasında yapılır. Bu blok kod genellikle
HTML içinde ve başlık kısmında olur.
Script bloğu içinde
özellikle HTML formu üzerindeki kullanıcı etkileşimi sağlanır. Örneğin bir
metin kutusuna girilen alanın değerinin kontrolü gibi.
Aşağıdaki örnekte ekrandan
alınan bilgilerin kontrolünü yapmak için bir VBScript kodu yazılmıştır. Burada
kontrol edilen olay submit olayıdır. Submit olayı, ziyaretçinin Submit
düğmesine basarak formu göndermesi işlemidir. Bu işlem de <FORM ACTION
="kayit.asp" METHOD=POST NAME=ariza> gibi satırlarda belirtilir.
Örnek: Veri girişinin
kontrolü için script yazmak:
<HTML>
<HEAD>
<TITLE> ARIZA FORMU
</TITLE>
</HEAD>
<SCRIPT
LANGUAGE="VBSCRIPT">
Function Frmariza_OnSubmit()
'--- forma alanlari tamamlanincaya kadar
izin verme
Frmariza_OnSubmit = False
Set theForm = Document.Frmariza
If Not IsDate(theForm.txttarih.Value) Then
MsgBox "Lütfen tarihi anlamli
girin", vbCritical, "Giris Gerekiyor."
theForm.txttarih.Focus
Else
'--- adi alanini kontrol et.
If Trim(theForm.txtadi.Value) =
"" Then
MsgBox "adini girin.", vbCritical,
"Giris Gerekiyor"
theForm.txtadi.Focus
Else
If Trim(theForm.txtadres.Value) =
"" Then
MsgBox "Adres girin.", vbCritical,
"Giris Gerekiyor"
theForm.txtadres.Focus
Else
If Trim(theForm.txttelefon.Value)
= "" Then
MsgBox "telefon
girin.", vbCritical, "Giris Gerekiyor"
theForm.txttelefon.Focus
Else
If Trim(theForm.Chktur.Value) =
0 Then
MsgBox "Ariza türünü
girin", vbCritical, "Giris Gerekiyor"
theForm.Chktur.Focus
Else
'--- son olarak gönderme
Frmariza_OnSubmit = True
End If
End If
End If
End If
End IF
End Function
Sub cmdkontrol_onclick
Msgbox
"deneme",3,32
End Sub
Function tarihgetir()
Document.Frmariza.txttarih.value
= date() & time()
Msgbox str(hour)
End Function
</SCRIPT>
<BODY BGCOLOR="#00F0AF">
<CENTER><H1> Ariza
Takip Formu </H1></CENTER>
<FORM ACTION ="arizakayit.asp"
METHOD=POST NAME=frmariza>
<TABLE BORDER=1>
<TR bgcolor="#eebbcc">
<TD> <font color=#SS00CC>
TARIH: </font></TD>
<TD><input type=text name =txttarih
size=20</TD>
</TR>
<TR
bgcolor="#eebbcc">
<TD> ARIZAYI BILDIREN: </TD>
<TD><input type=text name =txtbildiren
size=30 maxlength = 20</TD>
</TR>
<TR bgcolor="#eebbcc">
<TD> ARIZA TÜRÜ: </TD>
<TD>
<Input
type=checkbox Name="Chktur" VALUE="0" Checked> TEKNIK
<Input
type=checkbox Name="Chktur" VALUE="1"> YAZILIM
<Input
type=checkbox Name="Chktur" VALUE="2"> DONANIM
<Input
type=checkbox Name="Chktur" VALUE="3"> M-MEDYA
<Input
type=checkbox Name="Chktur" VALUE="4"> NETWORK
<Input
type=checkbox Name="Chktur" VALUE="5"> DIGER
</TD>
</TR>
<TR bgcolor="#eebbcc">
<TD> AÇIKLAMA </TD>
<TD><textarea name =txtaciklama
COLS=50 ROWS=5></textarea>
</TD>
</TR>
<TR bgcolor="#eebbcc">
<TD> ACILIYET DURUMU: </TD>
<TD>
<SELECT name =cmbaciliyet
size="1" STYLE="width:155px">
<OPTION SELECTED
VALUE="0">NORMAL</OPTION>
<OPTION
VALUE="1">ACIL </OPTION>
<OPTION
VALUE="2">ÇOK ACIL </OPTION>
</SELECT>
</TD>
</TR>
<TR bgcolor="#eebbcc">
<TD> ISTENDIGI YER </TD>
<TD>
<Input
type=Radio Name="RdYer" VALUE="0" Checked> Kendi Yerinde
<Input
type=Radio Name="RdYEr" VALUE="1"> Serviste
</TD>
<TR
bgcolor="#eebbcc">
<TD> ADRES: </TD>
<TD><input type=text name =txtadres
size=30</TD>
</TR>
<TR
bgcolor="#eebbcc">
<TD> TELEFON: </TD>
<TD><input type=text name =txttelefon
size=30</TD>
</TR>
</TABLE>
<BR>
<BR>
<BR>
<CENTER>
<INPUT
TYPE="SUBMIT" VALUE ="KAYDET"> 
<INPUT
TYPE="BUTTON" NAME ="cmdkontrol" VALUE ="KOTROL"
> 
<INPUT
TYPE="SUBMIT" VALUE ="RESET">
</CENTER>
</FORM>
</BODY>
</HTML>
II. JAVASCRİPT DİLİ
İstemci taraflı script
yazmak için kullanılan diğer bir dil ise JavaScript dilidir. JavaScript
özellikle bütün tarayıcılar tarafından desteklendiği için tercih edilir.
A. OLAYLAR
JavaScript ve VBScript
programlamasında olaylar çok önemlidir. Çünkü script kullanıcıyla etkileşim
için yazılır. Örneğin ziyaretçinin 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.
Tablo : Olaylar ve
oluştukları yer
Olay Açıklama HTML
elemanı
onblur Odaklanmanın
kaybedilmesi durumunda oluşur. <BUTTON>,
<INPUT>, <LABEL>,
<SELECT>, <TEXTAREA>
onchange İçindeki
değerin değiştirilmesi durumunda ya da
odaklamanın kaybedilmesi durumunda oluşur. <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>
Örnek: 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>
<SCRIPT LANGUAGE="JavaScript">
function alankontrol() {
alert ("alan değeri
geçersiz")
}
</script>
</HEAD>
<BODY>
<form>
<INPUT TYPE =
"TEXT" SIZE = 20 NAME="adi" ONCHANGE="alankontrol()"
>
</form>
OnClick Olayı
Ziyaretçinin tarayıcı
üzerindeki bir düğmeyi tıklaması durumunda Click olayı oluşur.
Örnek 20: Olaya Göre
Fonksiyonun Çağırmak
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
function mesaj() {
alert ("mesaj")
}
</script>
</HEAD>
<BODY>
<form>
<INPUT TYPE = "button"
NAME="Dugme1" VALUE="Düğme1" ONCLICK="mesaj()"
>
</form>
</BODY>
OnSubmit Olayı
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.
Ö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.
Örnek:
<HTML>
<HEAD>
<TITLE>JavaScript ornegi
</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
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;
}
// -->
</SCRIPT>
</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>
OnReset Olayı
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.
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.
Örnek : OnReset Oayı
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
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>
III. UYGULAMALAR
Şirketimiz Web sayfasını
için aşağıdaki alanları olan bir anket formu tasarlayın:
Ardından alanlara girişleri
kontrol edecek bir script yazın. Alanlar boş geçilmesin, geçildiğin de
uyarılsın.
Form yapısı:
Şirketimiz Hakkındaki
Görüşleriniz:
ADI SOYADI:
MESLEĞİ:
ADRESİ:
İLİ:
ŞİKAYETİ:
TARİH:
VARSA EK BİLGİLER:
IV. GÖZDEN GEÇİRME
1. HTML belgesi içinde Script
yazmanın yararı nedir?
2. Hangi Script dillerini
kullanabiliriz?
3. Form validation nedir?
Nasıl yapılır?
4. Olay (event) nedir?
Tarayıcı üzerindeki olayları açıklayın.