Saya hanya ingin share beberapa fungsi JS yang sering saya pakai. Ya, memang jQuery atau Prototype selalu lebih menggiurkan. Tetapi, kalau hanya untuk toggle (show/hide sebuah div) kemudian anda menggunakan jQuery, bukankah itu adalah sebuah overkill? 50kb overhead (uncompressed) tidaklah murah. Jadi, saya share aja fungsi-fungsi javascript yang sering saya gunakan tanpa harus melangkah ke prototype atau jQuery.

Menyingkat getElementByID. Metode itu memang sangat menyebalkan, panjang, dan notasi case-sensitive yang menyakitkan hati. Saya suka mempersingkat pemanggilan dengan menggunakan fungsi ini:

var EL = function() {
	if (arguments.length == 1) {
		var obj = document.getElementById(arguments[0]) || {length:0};
		if (obj) obj.length = 1;
		return obj;
	}

	var r = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var el = arguments[i];
		if (typeof el == 'string') {
			var obj = document.getElementById(el);
			if (obj) r.push(obj);
		}
	}
	return r;
}

Metode ini selalu mengembalikan object. Contoh pemanggilan:

EL( "submitButton" ).onclick = function() { /*masukkan fungsi anda di sini*/; return true; };

Fungsi untuk mem-filter inputan, jadi sebuah textbox yang hanya menerima inputan angka, atau huruf atau apa aja yang kira2 kepikir.

function filterInput(input, pattern) {
	input.onkeypress = function(e) {
		if (!e) var e = window.event; //IE
		var code = ( e.keyCode && e.keyCode ) || ( e.which && e.which );
		var ch = String.fromCharCode(code);
		return code < 32 || pattern.test(ch);
	};
}

Fungsi filterInput akan melakukan capturing key yang diketikkan oleh user dan jika match dengan pattern (regex) yg ada akan meneruskan key yg diketik. Jika tidak match, dia akan diam saja. Contoh penggunaan:

filterInput( EL("username"), /[a-zA-Z0-9_.]/ );

Username hanya boleh karakter a-z, A-Z, 0-9 dan boleh mengandung spesial karakter titik (.) atau underscore (_)

Array on Steroid, extending object array, sehingga object array menjadi sangat powerful dengan metode2 yang kita definisikan sendiri.

//diambil dari jQuery 
Array.prototype.each = function(fn) {
	var n, i=0;
	if (this.length === undefined) {
		for (n in this)
			if (fn.call(this[n], n, this[n]) === false) break;
	} else {
		for (var value=this[0], i=0; i
Array.prototype.find = function(s) {
	var r = false;
	for (i=0; i

Penggunaan sangat sederhanya. Contoh:

//enable form username dan password
EL("username", "password").each(function() {
  this.enabled = true;
});

Sementara itu dulu yg saya share, next time, akan saya share lebih banyak lagi.