Christian Heilmann

MSIE DOM messing around with the name attribute

Monday, April 4th, 2005 at 9:36 pm

I am working on a small editor for a CMS, and wanted to take a less WYSIWYG approach than for example HTMLarea does. My idea is to clone a node of possible block elements. Now, in the editor example Firefox works perfectly, the test output gets new IDs, for attributes and name attributes. MSIE however, fails to rename the name attribute (in the output the name of the textarea stays “c” instead of “c0”, the select doesn’t get a name attribute at all). The MSDN library does not have any information if there is a known bug.

The code in question:
ps[i].getElementsByTagName('label')[0].htmlFor='c'+i;
ps[i].getElementsByTagName('textarea')[0].id='c'+i;
ps[i].getElementsByTagName('textarea')[0].name='c'+i;
ps[i].getElementsByTagName('label')[1].htmlFor='t'+i;
ps[i].getElementsByTagName('select')[0].id='t'+i;
ps[i].getElementsByTagName('select')[0].name='t'+i;
Volkan Ozcelik pointed out on the evolt list that mixed case works:
ps[i].getElementsByTagName('label')[0].htmlFor='c'+i;
ps[i].getElementsByTagName('textarea')[0].id='c'+i;
ps[i].getElementsByTagName('textarea')[0].NAME='c'+i;
ps[i].getElementsByTagName('label')[1].htmlFor='t'+i;
ps[i].getElementsByTagName('select')[0].id='t'+i;
ps[i].getElementsByTagName('select')[0].NaMe='t'+i;

Anyone out there who can explain?

Share on Mastodon (needs instance)

Share on Twitter

Newsletter

Check out the Dev Digest Newsletter I write every week for WeAreDevelopers. Latest issues:

160: Graphs and RAGs explained and VS Code extension hacks Graphs and RAG explained, how AI is reshaping UI and work, how to efficiently use Cursor, VS Code extensions security issues.
159: AI pipelines, 10x faster TypeScript, How to interview How to use LLMs to help you write code and how much electricity does that use? Is your API secure? 10x faster TypeScript thanks to Go!
158: 🕹️ Super Mario AI 🔑 API keys in LLMs 🤙🏾 Vibe Coding Why is AI playing Super Mario? How is hallucinating the least of our worries and what are rules for developing Safety Critical Code?
157: CUDA in Python, Gemini Code Assist and back-dooring LLMs We met with a CUDA expert from NVIDIA about the future of hardware, we look at how AI fails and how to play pong on 140 browser tabs.
156: Enterprise dead, all about Bluesky and React moves on! Learn about Bluesky as a platform, how to build a React App and how to speed up SQL. And play an impossible game in the browser.

My other work: