Skip to content Skip to sidebar Skip to footer

Can I Use Javascript To Set The 'name' Attribute?

According to SitePoint (and my own experiments), the IE implementation of 'setAttribute()' is buggy and unreliable. Also according to SitePoint, the name attribute is read-only. Is

Solution 1:

This worked for me

alert(document.getElementById('testInput').name);
document.getElementById('testInput').name = 'someName';
alert(document.getElementById('testInput').name);

With

<inputtype="radio" name="test"id="testInput" />

Solution 2:

Sitepoint liesis talking about a different usage of ‘name’ (see Anthony's comment). It's not read-only, it's just there's a long-standing IE bug (up to v7) where setting ‘name’ on form fields is only partially effective. Radio buttons in particular don't accept it properly.

The Microsoft-endorsed solution, as detailed here is to use a horrific misfeature of IE's version of the createElement call to set attributes at the same time:

var radio= document.createElement('<inputtype="radio"name="test"value="a" />');

Probably a better way would simply be to use good old innerHTML, eg.:

var div= document.createElement('div');
div.innerHTML= '<input type="radio" name="test" value="a" />';
var radio= div.firstChild;

Solution 3:

Why not use setAttribute("name", yourValue) it works perfectly fine.

Solution 4:

Have you tried simply assigning a new name to the elements name property? I'm not sure how cross-browser that is but it shold work with anything supporting DOM level 1.

I'm not sure why you would use setAttribute to perform this?

Solution 5:

The name property is not read only for input elements.

See the spec.

Post a Comment for "Can I Use Javascript To Set The 'name' Attribute?"