2011-07-03 20 views
12

Ben seçilmiş bir açılan bir form var ve benim seçme etiketi şuna benzer:JavaScript amaçlı sözcük: "Önceden ayarlanmış"

<select name='preset' onchange='preset(this);'>

Şu anda sadece alert('test'); yapmak benim JavaScript işlevini var. Peki, seçimimi açılan menüden değiştirdiğimde, "ön ayar bir işlev değil" şeklinde bir hata alıyorum. Evet, doğru yazıldığını doğruladım ve hatta sayfa yüklendiğinde genel bir arama yaptım ve uyarımı aldım. Başka bir şey benim işlev adını değiştirirseniz

, presetx gibi gayet güzel çalışıyor. Bu yüzden, belki de "önceden ayarlanmış", JavaScript'te bir çeşit ayrılmış kelime olduğunu düşündüm, ama böyle bir şey söyleyemiyorum. Bu neden olur?

Güncelleme

Şu benim form ve fonksiyon haricinde Test sayfamda başka bir şey yok. Hiçbir çerçeve içerir veya başka bir kod, bu yüzden böyle bir şey olmadığını biliyorum.

cevap

15

Bazı tarayıcılar küresel değişkenlere name özelliklere sahip elemanlar map. Yani <select name='preset' onchange='preset(this);'> aslında (bazı tarayıcılarda) global bir özelliği preset oluşturur. Bu, preset işlevinin üzerine yazar. preset yana

bir "değil bir işlev" hatası alıyorum, artık bir HTMLSelectElement nesne değil, bir işlevdir. mantıklı

+0

aaah, nasıl kaçırmış olabileceğini:/ – newbiejsperson

+6

Hiç var olmaması gereken ve bir W3C standardı aktarıldı asla bir zekâlı karşıtı özellik de ondan. Ama ben digress ... – lonesomeday

+2

Yikes, Bunu hiç bilmiyordum. Javascript'in kendi "register_globals" (PHP'den biraz daha az tehlikeli olsa da) –

İlgili konular