Tuesday, August 4, 2009

jquery validation eklentisi select elemanı neden i.e.'da hata verir

ÇÖZDÜM-BULDUM

Uzuncadır jquery validation eklentisini kullanırım fakat geçen çok üzücü bir olay yaşadım :)
şöyle ki; hiç yapmadığım bir şey ama dalgınlıklat "select" elemanının "option" larına "value" değerini vermemişim. Bu şekilde de o"option" içindeki metin "value" olarak alınabiliyor zaten. Ama standart olmuyor.


Tam bu sırada yaptığım formu i.e.'da denemek istedim ki select elemanı seçildiğinde veya seçilip başka bir elemana tıklandığında hatayı aldım 
"Nesne gerekli"
sayfayı debug yaptığımda ise kırılan satırın şurası olduğunu gördüm.
case 'select':
var options = $("option:selected", element);
return options.length > 0 && ( element.type == "select-multiple" || ($.browser.msie && !(options[0].attributes['value'].specified) ? options[0].text : options[0].value).length > 0);

Sonra fark ettim ki "option" lar için hiç "value" girmemişim.
Hepsi şu şekildeydi:
<option>metin</option> 
<option>metin2</option>

Tabi bunu Jörn düşünmesi gerekliydi. Benim gibi dalgınlar böyle kullanabilir ve buna bir önlem almak gerekirdi.  Neyse olayı erkenden farkedip hemen müdahale ettim.
Gıcıklık olsun diye hala "value" eklemedim onun yerine case içerisine "options[0].attributes['value']" olup olmadığını kotrol edip duruma göre "option" içindeki metni aldım.
ama daha kolay bir yol olarak siz her "option" için bir "value" eklemeyi unutmayın.