Bölüm 7

Formların Düzenlenmesi

Sayfa 3


<input> Elementi

<input> Elementi :

<input> Elementi, farklı görünüşlü birçok veri giriş kontrolu oluşturmak için kullanılır. Görünüşleri farklı olmasına karşın tüm bu kontroller, tek bir <input> elementinden kaynaklanır ve veri girişi amacı ile kullanılırlar. DTD de <input> elementi tanımı,

 

 

şeklindedir. Bu bildirimden <input> elementinin boş bir element olduğu, başlangıç iminin zorunlu, sonuç iminin kullanımın yasak olduğu anlaşılır. Bu elementin sözdizimi,

<input                                  (Başlangıç imi : gerekli )

Ortak Temel Nitelikler(Çekirdek Nitelikler, Uluslararasılaştırma Nitelikleri, Script Yazılabilecek Olaylar)

type="(text | paasword | checkbox | radio | submit| reset | file | hidden | image | button)" [YZ]

name="CDATA" [YZ]

value= "CDATA" [YZ]

size= "CDATA" [YZ]

maxlength= "sayı" [YZ]                                 

checked [YZ]

src= "URI" [YZ]

disabled [YZ]

readonly [YZ]

alt = "text" [YD]

usemap = "URI" [TB] 

ismap

tabindex = "Sayı" [YD]

accesskey = "Karakter" [YD]

onfocus = "Script" [TB] 

onblur = "Script" [TB] 

onselect = "Script" [TB] 

onchange = "Script"  [TB] 

accept="İçerik Tipi Listesi" [YZ]

>

İçerebileceği elementler :içeriği yok (boş element)

 

şeklindedir.

<input> elementini içerebilecek elementler : Blokdüzey ve satıriçi elementler (<button> dışında).

<input> Elementinin Nitelikleri

type="(text | password | checkbox | radio | submit| reset | file | hidden | image | button)" [YZ] Bu nitelik <input> elementinin oluşturacağı kontrol tipini belirtir. Varsayılan değeri "text" olarak belirlenmiştir. Belge çözümleyicisinin oluşturacağı kontrol türünü bilebilmesi için, "text" dışında her <input> bildirimi ile bir type niteliği bildirimi zorunludur. Örnek :

şeklinde bir bildirim, varsayılan tip olan, bir metin giriş kutusu kontrolu açacaktır. Metin kutusu için tip bildirimi isteğe bağlı olmasına karşın, belge değerlendiricilerden bazılarının bu kolaylığı anlamayıp hata belirttiği görülmüştür. Bu durumda, belgenin hatasız kodlandığı onayının alınması için, tip bildirimi yapılmasında yarar olacaktır. Örnek,

şeklinde netleştirilmiştir.

name="CDATA" [YZ] Her kontrolun bir ismi olması zorunludur. Script programları bu isimlerden yararlanarak, değişkenlere doğru verilerin girişini sağlayacaklardır.

value= "CDATA" [YZ] Bu niteliğin değeri, kontrolün belge çözümleyiciye aktarılacak bir başlangıç değeridir. "image" Tipindeki bir kontrole başlangıç değeri verilemez. "button", "checkbox", "hidden", "password", "radio" Tipi kontrollerde bir başlangıç değeri verilmesi zorunlu, diğer kontroller için isteğe bağlıdır.

size= "CDATA" [YZ] Bu nitelik, belge çözümleyiciye kontrolun boyunu aktarır. Metin kutusu ve "password" tipi kontrollerde, bu niteliğin değeri, kontrolün karakter sayısıdır. Diğerlerinde, piksel birimleri ile belirtilen kontrolun genişliğidir.

maxlength= "sayı" [YZ] Sadece "file", "text", "password" tipleri için, isteğe bağlı bir nitelik değeridir. Bu değer, kullanıcının girebileceği verinin en yüksek karakter sayısını belirtmez. Sadece, bu değer aşıldığında, belge çözümleyinin bir görüntü kaydırma (scrolling) mekanizması devreye girer. Bu niteliğin bildirilmesi isteğe bağlı, varsayılan değeri ise sonsuz sayıda karakterdir.

checked [ YZ] Bu değer, sadece "radio" ve "chekbox" tipi kontroller için kullanılabilen bir boole tipi değerdir. Kontrolun başlangıçta onaylanmış olduğunu belirtir.

src= "URI" [YZ] Bu nitelik değeri, düğme olarak kullanılacak bir resmin bulunduğu yeri belirtir.

disabled [YZ] Bu nitelik, kontrolun etkisizleştilmiş olduğunu belirtir.

readonly [YZ] Sadece "text" ve "password" tipi kontroller için, verinin kullanıcı tarafından değiştirilemeyeceğini belirtir.

alt = "text" [ YD] Bu niteliğin değeri, resimlerin yerine görüntülenebilecek bir alternatif metindir.

usemap = "URI"  [TB] Bu niteliğin değeri, görüntü haritası olarak kullanılacak bir resmin URI değeridir.

ismap Bu niteliğin değeri bir sunucu tarafı görüntü haritasıdır ve kullanımı artık teşvik edilmemektedir.

tabindex = "Sayı" [YD] Bu niteliğin değeri, kontrola ulaşmak için gerekli tab dolaşım sırasını belirleyen bir sayıdır.

accesskey = tek karakter [ YN ] Bu nitelik, bir "hot-key" özelliğidir. İşletim sistemine bağlı olarak, bir "alt" veya "meta" tuşunu basılı tutarak basılacak bir karakter ile bağlantının çalıştırılmasını sağlar. Değeri, bağlantıyı çalıştıracak bir tek karakter değeridir.

onfocus = "Script"  [TB]  Bu niteliğin değeri, ilgi kontrol üzerine odaklandığında, devreye girecek script programıdır.

onblur = "Script"  [TB]  Bu niteliğin değeri, ilgi kontrol üzerinden kalktığında, devreye girecek script programıdır.

onselect = "Script"  [TB]  Bu niteliğin değeri, bazı metinler seçildiğinde, devreye girecek script programıdır.

onchange = "Script"  [TB]  Bu niteliğin değeri, kontrolün değeri değiştiğinde, devreye girecek script programıdır.

accept="İçerik Tipi Listesi" [YZ] Bu niteliğin değeri, virgülle ayrılmış geçerli içerik tipi listesidir. Bu niteliğe sadece "file" tipi bir kontrolde, yani sunucuya bir veri dosyası transfer ederken gereksinme duyulur.

<input> Elementi, değişik tipte çeşitli kontroller oluşturduğundan kullanılabilecek nitelikler oluşturulacak kontrol tiplerine bağlıdır. Belirli bir tip kontrol ile kullanılabilecek niteliklerin seçiminin kolaylaştırılabilmesi için, aşağıdaki tablodan yararlanılabilir.

 

Nitelikler Tablosu

 

<input> Elementi ile Oluşturulabilecek Kontroller ve Uygulamaları

Metin Kutusu

<input type="text"... bildirimi tek satırlık bir metin kutusu yaratır. Örnek:

Soyadınızı Giriniz !

Password

Password tipi kontrol, metin kutusu tipindeki kontrolun biraz değişik bir şeklidir. Password tipi kontroller, görüntülendiklerinde, içeriklerini belirtecek şekilde görüntülenmezler. İçerikleri kaynak kodlarından okunamaz fakat, bu veriler sunucuya taşınırken açık metin halinde taşınırlar ve sisteme düşük düzey girişi olanağı olan ve HTTP mesajlarını okuyabilen hackerler tarafından yakalanabilirler. Bu nedenle, password tipi bir kontrol, kredi kartı verileri, gizli kimlik verileri gibi hassas veriler için yeterli bir kriptolama yöntemi sayılamaz. Bu gibi veriler için kesinlikle daha etkili koruma yöntemlerinin uygulanması gerekir. Tekrar edelim, hassas veriler asla açık bir iletişimle iletilmemelidir. Bunlar için çeşitli güvenli iletim mekanizmaları bulunmaktadır.

Checkbox (Onay Kutusu)

Bu kontrol aşağıdaki örnekte de görüldüğü gibi aynı isim grubunu paylaşan bir onay kutusu grubu yaratır. Onay kutuları, birbirlerini dışlamayan çoklu seçeneklerden seçim olanağını sağlayan görsel araçlardır. Onay kutularının da diğer kontroller gibi, kullanıcıların hoş bir görsel ortam altında, az klavye kullanımı ile veri girişlerinin sağlanmasıdır. Tüm kontrollerin sonuçları gibi, onay kutularının sonuçları da sunucuya salt metin olarak gönderilir.

Bir onay kutusu grubunda seçeneklerin tümü, bazıları veya hepsi onaylanabilir veya onaylanmayabilir. Bir onay kutusu grubundaki onay kutuları, baştan onaylanmış olarak düzenlenebilir. Baştan onaylanmış onay kutularının onayları kullanıcılar tarafından kaldırılabilir.

Aşağıda onay kutularına bir örnek verilmiştir:

Erkek Kadın

Onay kutusu grubundaki onaylama sonuçları, sunucuya salt metin bilgileri olarak iletilir. Aynı onay kutusu tipindeki kontrollerden ikisinin de adlarının aynı olmasına rağmen ikisi de kullanıcı tarafından onaylanabilir. Eğer sadece Erkek olarak görüntülenen fakat esas değeri male olan onay kutusu onaylanmışsa, sonuçlar sunucuya salt metin formatında, Gender=male olarak iletilecektir. Sunucu üzerinde çalışan script programları, bu verileri değerlendirebilecek olanaklara sahiptirler.

Bazı siteler, kullanıcıya, örnek olarak "kabul ediyorum" seçeneği işaretli sayfalar gönderir ve onaylamamızı beklerler. Seçeneğin önceden onaylanmış durumu kaldırılmadan, formu gönder düğmesi tıklanırsa, bazen ücret ödenmesi de gerekebilen birçok can sıkıcı seçenek de kabul edilmiş olur. Bundan kaçınmak için, sunucuya gönderilecek formların içerdiği bilgiler dikkatle incelenmelidir.

Radio (Radyo Düğmesi)

<input type="radio" name="xx" ... şeklinde bir bildirim, xx isim uzayını paylaşan tek bir radyo düğmesi grubunu yaratır. Radyo düğmeleri, kullanıcıya diğer seçenekleri dışlayan bir çoktan seçim olanağı sağlar. Belge çözümleyiciler, aynı radyo düğmesi grubundaki düğmelerden sadece birinin seçilmesine olanak verirler. Yani, aynı gruptaki radyo düğmelerinden birisinin onaylanması halinde, diğerleri üzerindeki onay otomatik olarak kaldırılır. Belge çözümleyicierden bazıları, aynı gruptaki radyo düğmelerinden en az birisinin onaylı olmasını istediklerinden, bu radyo düğmelerinin birinin başlangıç değeri, bir güvenlik önlemi olarak "onaylı" halinde belirtilir. Bu durumda, sadece bir tane radyo düğmesi içeren bir radyo düğmesi grubu oluşturmanın hiç bir kullanıcı seçimi içermeyeceği ve anlamsız olacağı gözönüne alınmalıdır. Aşağıda, radyo düğmeleri kullanılarak bir çoktan seçim örneği verilmiştir:

Onay : Evet Hayır Belki

Kontrollerden her üçünün de adlarının aynı olduğu ve bu durumda bu üç radyo düğmesi kontrolünün aynı isim uzayını paylaşan bir grup oluşturduğu görülmektedir. Bunlardan sadece birisi onaylanabilecektir. Örnek olarak "belki" seçeneği onaylanmışsa sunucuya, onay=belki şeklinde, metin formatında bir bilgi iletilecektir.

Submit

Submit kontrolu tüm form bilgilerini sunucuya transfer eder. value Niteliği düğmenin üstündeki görüntülenen metni (caption) belirtir.

 

Reset

Reset kontrolu formdaki tüm kontrollerin değerlerini başlangıç değerlerine indirger. value Niteliği düğmenin üstündeki mesajı belirtir.

File (Dosya Transferi)

Dosya transferi biraz kritik bir veri yükleme yöntemidir. Aşağıdaki örnek, fare ile çift tıklayarak seçilen bir HTML dosyasının değerlendirilme için sunucuya tranferini ve değerlendirme için kullanılacak programı belirtmektedir:

Değerlendirilecek olan HTML dosyasını fare ile üstüne çift tıklayarak seçiniz. Eğer, belge çözümleyiciniz dosya transferini desteklemiyorsa daha basit bir HTML değerlendiricisini Alternatif Değerlendirici adresinden bulunuz.

Burada, dikkat edilecek noktalar, formun iletim metodunun "post" olması halinde, enctype="multipart/form-data" olması ve tranfer edilecek bilginin bir dosya olması halinde, accept="text/html" niteliğinin  kullanılmasıdır.

Hidden (Saklı Kontroller)

Saklı kontroller, sadece kullanıcı ekranında görünmezler yoksa HTML kaynak kodlarını okumasını bilenler için saklı bir tarafları yoktur. Bu bilgiler, çoğunlukla bir formdan başka bir forma aktarılırken, yeniden girilmesi gereğinin olmaması veya başka kullanıcılar tarafından görülmesi istenmeyen veriler için kullanılır. Örnek :

Image (Resim Tipi Kontroller)

Resim tipi kontroller, grafik "submit" düğmeleri olarak görev yaparlar. Resim tipi kontroller, tek düğme yerine geçen basit resim tipi kontroller olabildikleri gibi, prensip olarak karmaşık görüntü haritaları da olabilir. Basit bir resim tipi kontrole örnek :

Burada, value niteliğinin değeri alt niteliğinin değeri gibi, resmin görüntülenemediği durumlarda görüntülenecek bir alternatif metin olarak algılanır.

Görüntü haritaları şeklinde "submit" düğmeleri, tüm belge çözümleyiciler tarafından çözümlenememekte olduğundan henüz kullanımları devrede değildir.

Button (Düğme)

Bir Düğme kontrolü, basıldığı zaman bir kullanıcı tarafı script programını çalıştırır. Çalışacak fonksiyon önceden belli olmalıdır. Örnek:

<input> Elementi ve Script Programları

Script programları, <input> elementi ile oluşturulan kontroller yardımı ile kullanıcı ile karşılıklı etkileşim olanağına kavuşur. Kullanıcı, bu kontroller yardımı ile script programlarına veriler sağlar.

Eğer <input> elementi, bir <form> elementinin içeriğini oluşturuyorsa, o zaman <input> elementi ile oluşturulmuş kontrol, "başarılı kontrol" oluşturabilir ve sunucu bilgisayar sisteminde çalışan, sunucu tarafı script programlarına veri sağlayabilir.

Eğer <input> elementi bir <form> elementi dışında kendi başına bildirilmiş ise, veya sayfanın bulunduğu yerin, uzak veya yerel sunucu ile iletişim kurabilecek olanakları yoksa, kodlar istemci bilgisayarında kurulu bulunan herhangibir belge çözümleyicisi ile çözümlenebilir. Bu işlem sayfanın çözümleme aşamasına kadar iletim işleminin aynıdır. Çözümleme sonunda, kontrol bu kez, belge çözümleyisinin desteklediği kullanıcı tarafı script programlarına veya yerel sunucu (localhost) üzerinde bir tür kapalı devre yayın yapan sunucu tarafı script programlarına veri sağlayabilir.

 

Wednesday, October 5, 2005 17:48

 

validate in W3C !Valid HTML 4.01!