Bütün Form elementlerini değer olarak tanıtma, extract()
Merhaba,
Geçenlerde bir kod yazdım ve sizinle paylaşmak istedim. Bu kod body->onload event'inde çalıştırldığında bir form element'ini adeta
şeklinde tanıtmışsınız gibi bütün elementleri yakalayıp id'lerine göre tanıtıyor.var textbox = document.getElementById("textbox");
Bu function'ın çok benzeri PHP'de de var yine extract ismiyle.
Neyse işte kod.
function extract(){
var ie = (document.all)? "var " : "";
var allelems = document.body;
for(var x=0;x < allelems.childNodes.length;x++){
if(allelems.childNodes[x].id){
eval(ie + allelems.childNodes[x].id + " = document.getElementById('"+ allelems.childNodes[x].id +"');");
}
}
}
Bu fonksiyonun bazı problemleri var mesela body->onload'da luzümsüz şeyleri çalıştırmak programınızı yavaşlatabilir.
bunun yanında eğer form'unuzdaki elementlere id'olarak allocated isimler verdiyseniz. yani "window", "document", "if", "for", "while" gibi bu isimlerle değer tanıtmaya çalışacağından sorun yaratabilir.
Aslında bu probleminde bir çözümü var, değerleri şu şekilde:
tanıtmak yerine, bu şekilde tanıtın.var textbox = document.getElementById("textbox");
Bu sorunu çözecektir. size formdaki bütün elementleri içeren bir associative array vericek.
var elems = new Array;
elems["textbox"] = document.getElementById("textbox");
elems["textbox2"] = document.getElementById("textbox2");
Çokta kullanışlı bir function olmadığını biliyorum. ancak bazı özel durumlarda mesela dosya boyutunu düşürmede kullanılabilir. neyse umarım işinize yarar,
iyi çalışmalar.