HTML Form Onaylama (JavaScript ile programlamaya son!)

0
FZ
(GÜNCELLEME: Mozilla ile uyumlu hale getirildi) Herhangi bir web sayfası içinde herhangi bir html formu yerleştirdiğimizde bunun hemen ardından genellikle form gönderilmeden önce kullanıcının bu formu düzgün şekilde doldurup doldurmadığını kontrol etmek isteriz ("form validation"). Böylece sunucu tarafındaki kontrollere geçmeden önce doğrudan kullanıcının bilgisayarında yani istemcide hızlıca ve basit bir kontrol gerçekleştirebilir, hatalı ya da eksik bilgi girişinin bir nebze önünü kesmiş oluruz.
Bu kadar basit ve sık tekrarlanan bir işlevsellik söz konusu olmakla birlikte genellikle programcılar hemen her seferinde oturup kendi yazdıkları ya da bir tasarımcının yazmış olduğu HTML formu için sıfırdan JavaScript kodu yazarlar. Her seferinde o forma özgü olarak bir JavaScript kontrol programı oluşturulur, test edilir, vs. Bu kadar önemli, sık kullanılan bir işlevselliğin mevcut HTML standardının içinde olmaması üzücüdür ve bunu gidermek için W3C tarafından yeni standartlar geliştirilmektedir. Konunun önemli olduğuna ve otomatik hale getirilmesi gerektiğine dair bir başka örnek de Microsoft tarafından çıkarılan .NET çatısı ve Visual Studio.NET tanıtımlarındaki "bakın artık web formlarınızın kontrolü için JavaScript kodu yazmak zorunda değilsiniz, ilgili form alanının özelliklerine gelerek istediğiniz gibi onu gerekli kılabilir, belli bir RegEx kalıbına göre onaylanmasını sağlayabilir, istediğiniz hata mesajını belirterek bunun, sorun çıktığında kullanıcıya uyarı olarak gösterilmesini sağlayabilirsiniz, bütün bunları tek satır JavaScript kodu yazmadan yaparsınız!" cümleleridir. .NET lafını duyunca benim gibi !YET diyenlerdenseniz okumaya devam edin.

Görüşler

0
asliturk
Mozilla 1.4'te çalışmıyor. Ayrıca bunun teknoloji olarak .Net ile bir alakası yok. Ben benzer bir yöntemi zaten kullanıyorum. Standart olmayan attributler kullanılıyor yüzden tüm tarayıcıların destekleme garantisi yok.
0
FZ
Mozilla üzerinde sorunlu olduğu konu hakkındaki detaylı makalenin son kısmında belirtilmiştir. Bu konuda her türlü desteğe açığız. Maksat bunu herkesin sorunsuzca kullanabileceği standart bir hale getirmek.

Teknoloji olarak .NET ile alakası vardır, doğrudan burada yer alan kodun değil ama bahsi geçen konunun, yani JavaScript ile uğraşmadan doğrudan HTML form özelliklerinde bir girdi öğesinin zorunlu olmasını ya da belli bir kalıba göre girilmesinin kontrolü, kullanıcın uyarılması sağlamak, vs. Visual Studio.NET ve ASP.NET bağlamında burada bahsettiğimiz işlevin bir benzeri vurgulanmaktadır. İlk kez karşılaştığımda, bu tür bir şey için JavaScript yazmaktan sıkılmış biri olarak benim epey dikkatimi çekmişti ve `nihayet birileri bunu akıl etmiş´ demiştim.

Standart olmayan attribute´lara gelince, evet zaten işin püf noktası da orada. Mozilla´nın DOM (Document Object Model) Inspector aracı ile söz konusu web sayfasını incelerseniz söz konusu HTML elemanlarının içindeki attribute´ları ve değerlerini düzgün olarak gösterdiğini görebilirsiniz ancak maalesef halihazırdaki kod ile bunlara erişilmiyor, bunun bir yolu olup olmadığını da henüz bilmiyoruz (biz, yani bunu geliştirenler). Öncelikli olarak hedeflediğimiz ve çalıştığımız tarayıcı Internet Explorer olduğu için onun üzerinde geliştirdik ve test ettik.

Benzer bir yöntemi kullanmanıza gelince sizin adınıza sevindim, biz de benzer bir şey yaptık ve sonra da bunu insanlarla paylaşma kararı aldık. Konuyla ilgilenmiş biri olarak teknik eleştirilerinizi ve desteğinizi bizimle paylaşırsanız seviniriz.
0
asliturk
>!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
>html>
>head>
   >title>Test Page>/title>
   >script language="JavaScript" type="text/JavaScript">
      function runTest(){
         input = document.frmOne.textbox1;
         if(input.value == ""){
            alertNode = input.getAttribute('message');
            alert(alertNode);
            input.focus();
         }else{
            alert("OK");
         }
      }
   >/script>
>/head>
>body>
   >form name="frmOne" method="POST" action="nowhere.html" onSubmit="return validate(this);">
      >input type=text name="textbox1" message="Please fill in some value" value="">
       
      >input type=button name=b1 value="Test it" OnClick="javascript:runTest();">
   >/form>
>/body>
>/html>
0
asliturk
tag başlarındaki > ler test bölü işaretleri silinecek.
ön izleme yapmadan yorum gönderilmeyecek :)
0
crematorium
İkisi de çok başarılı çalışmalar ama FZ'nin yolladigini "daha kapsamli" olmasi acisindan tercih edecegim. Yine de tesekkurler... :)
0
crematorium
Bir yanlis anlama olmasin, "senin ki kötü bu daha iyi" maksatli bir cevap degildi bir onceki. FZ'nin yolladiginin icine bu gomulunce cok da guzel ve kapsamli bisey cikacak ortaya manasinda bir cevapti. Duzelteyim istedim. ;)
0
asliturk
Benim yazdığım kısım sadece mozilladaki bugın giderilmesini gösteren bir örnek FZ scripti buna göre yeniden düzenleyip koyacaktı.
0
FZ
Mozilla desteği için teşekkürler. Son güncellemelerden sonra sistem artık hem IE hem de Mozilla üzerinde çalışır hale geldi (bu sanırım Internet tarayıcı piyasasının %99.9´u oluyor ;-)

Kodun güncellenmiş halini bu akşam (bir aksilik olmazsa) aynı adreste yayınlayacağım web sayfası ve paket olarak.

FM camiasına güvenimi tazelediğiniz için teşekkürler ;-)
0
crematorium
Tüm "gençlik heyecanımla" beklemedeyim :)
Görüş belirtmek için giriş yapın...

İlgili Yazılar

VMWare Server 1.0 Çıktı

vst

Kullandığınız işletim sistemi üzerinde başka bir işletim sistemi çalıştırmanıza yarayan sanal makine yazılımı VMWare Server bedava olarak piyasaya sürüldü. İndirip kullanmak isteyenler buyursunlar.

Contiki İşletim Sistemi ve Masaüstü Ortamı

FZ

1 Mhz saat frekansında çalışan 8 bitlik 6510 mikroişlemcisi ve 64 KB ana hafızası olan bir Commodore-64 üzerinde bir Multi-tasking kernel, temaları ile oynayabileceğim bir pencere yöneticisi, Internet'e RS-232/SLIP ya da Ethernet üzerinden bağlanmamı sağlayan bir TCP/IP stack'i, buna doğal ek olarak hazır bağlanmışken web sayfalarını görüntüleyebileceğim bir Internet tarayıcısı, bir web sunucu ve bir de uzaktan sistemlere erişim için bir Telnet istemcisi istesem herhalde bana gülersiniz ve "saçmalama olur mu öyle şey!" dersiniz değil mi? Hmm, ama belki de demezsiniz ;-)

Hangi sunucuyu seçmeli?

Soulblighter

OSNews.com sitesinde Alejandro Tamayo Castillo tarafından yapılan testi ve yazılan makaleyi (özetle) burada çeviriyorum. Bu satırdan sonraki tüm satırlar Alejandro'nun ağzından söylenmiştir :)

Bir grup insan özgür yazılımı destekleyip Windows'dan nefret ederken, diğer grup ise Windows ve Microsoft'u savunup, özgür yazılımdan nefret ediyor. Peki kim daha iyi?

GNU/Linux Üzerinde Cinelerra Profesyonel Video Düzenleme

FZ

Mac ustaları Final Cut Pro, Windows çılgınları Adobe Premiere kullanırken elbet GNU/Linux´a gönül veren videocuların da eli boş durmadı. 1996 yılında ilk kez kamuoyuna sunulan Cinerella halen geliştirilmeye olanca hızı ile devam ediyor. Yazılımın profesyonel özelliklerinin arasında gerçek zamanlı görsel etkiler, FireWire G/Ç, render-farm, HDTV, OggVorbis desteği, vs. bulunuyor.

GNU/Linux´un ortaya çıkışından önceki karanlık çağlarda bu tür bir yazılım ve donanım sistemi için 100.000$ civarı bir parayı gözden çıkarmanız gerekirdi. Oysa projenin anonim programcılarından Jack Crossfire takma isimli yazılımcıya göre artık bu kadar harcama yapmanıza gerek yok.

Bu usta programcı ile yapılan bir röportajın da yer aldığı O´Reilly makalesinde belki de en ilginç kısım yazının başında Jack Crossfire´ın kimlikleri saklamak konusunda söylediği sözler: "Bizimki gibi küçülen bir sektörde, yöneticiler şimdilik yetenekli mühendislerin günlük işleri haricinde harika uygulamalar geliştirmelerine hazır değiller. Bu tür yöneticiler sistemi görmezden gelen mühendislerden kurtulmak konusunda bir an bile tereddüt etmezler, sizi kapının önüne koyarlar. Bu ve benzeri sebeplerden ötürü yazılımınızı kendi isminiz altında insanlara sunamazsınız dolayısı ile `Heroine Virtual Ltd.´ tüm geliştirdiğimiz araçları bünyesinde barındıran kuruluşun ismi oldu. Bu özgür yazılım kurumunun arkasında kaç kişinin ne ölçüde emeği olduğunu ise hayalgücünüze bırakıyoruz."

NZemberek 0.1 Çıktı

FZ

Zemberek blogundaki habere göre .NET için C# ile geliştirilen açık ve özgür kodlu yazım kılavuzu NZemberek çıktı:

"17 Kasım 2006'da Mehmet'e gönderdiğim bir e-posta ile başlayan çalışmamızın ilk ürününü bugün ortaya çıkardık. Zemberek projesinin .NET "port"u olan NZemberek'in 0.1 sürümü bugün itibariyle yayınlandı. 17 Kasım'dan sonra kodların .NET (C#) karşılıklarını oluşturduk. Bu iş, bazı araçları ya da otomatikleştirilmiş komutları kullanarak ne kadar hızla yapılsa da birçok zorlukla karşılaşılabiliyor. Zemberek ekibinin de desteğiyle şu anda Zemberek2 projesinin işlevlerini neredeyse tamamıyla yerine getiren bir sürüm mevcut.