Wednesday, February 4, 2009

Javascript Confusion

Ketika saya dulu mencoba library/framework jQuery, muncul sebuah pertanyaan, kapan kita mulai menggunakan framework/javascript library ? Kapan benefitnya melebihi costnya, misalnya pada waktu eksekusi halaman, kurva pembelajaran.. Pada saat itu performansi jQuery kurang memuaskan untuk kebutuhan kami. Namun karena ga begitu ngerti javascript juga, akhirnya dibiarkan pake jQuery :).
Pada kesempatan berikutnya, saya dan teman saya membuat sebuah aplikasi sederhana dengan deadline yang lumayan ketat. Javascript dihindari karena belum begitu paham dan masalah cross-browser compatibility yang lumayan pelik. Tapi, pada suatu halaman, kita terpaksa menggunakan javascript untuk membuat dua buah radio group saling terkait satu sama lain, yaitu radio group kedua hanya boleh digunakan pada saat sebuah radio button tertentu di group pertama dipilih. Cuma sebuah script onclick, dan script yang dijalankan ketika halaman diload untuk mendisable radio group kedua pada awal halaman. Kenapa nggak di PHP? Takutnya kalau user mendisable javascript, dan kondisi awal halaman sudah di-disable, dia sama sekali tidak bisa memilih radio group kedua.. Biarlah aplikasi tetap berfungsi bagi user tanpa javascript, dengan degraded functionality.
Dengan kebutuhan se-simple itu, ternyata membutuhkan berjam-jam.. dan belum bisa juga menemukan versi yang berfungsi di Internet Explorer maupun Firefox. Akhirnya, aku taruh jquery.js di folder js, dan mulai menggunakannya. Sepuluh menit pertama, sudah bisa menemukan versi yang berjalan baik di IE maupun Firefox.. Meskipun belum sepenuhnya sesuai dengan yang diharapkan. Setelah tweaking lebih lanjut, dan mencoba-coba beberapa pilihan desain (mau didisable ato dihidden ya.. :) ), akhirnya selesai.. dengan empat baris perintah jQuery :) Ya, memang satu baris jQuery itu udah bisa macam-macam.. seperti :
$("#tanya_faskes").children().attr("disabled",true);
perintah satu baris ini mendisable semua children dari element dengan id 'tanya_faskes'.. Dan berfungsi untuk semua browser.
Now, kenapa kalau di IE tulisan di daerah radio groupnya ikut di disabled .. dan kalo di Firefox tidak...

No comments: