根据SitePoint (和我自己的实验),在IE中执行“的setAttribute()”是越野车和不可靠的。
此外,根据SitePoint的name
属性为只读。
有另一种方式我可以设置name
上的元素属性? 我需要这与单选按钮使用。 如果可能的话,我想没有一个jQuery的解决方案,我目前没有使用磁带库。
提前致谢!
根据SitePoint (和我自己的实验),在IE中执行“的setAttribute()”是越野车和不可靠的。
此外,根据SitePoint的name
属性为只读。
有另一种方式我可以设置name
上的元素属性? 我需要这与单选按钮使用。 如果可能的话,我想没有一个jQuery的解决方案,我目前没有使用磁带库。
提前致谢!
Sitepoint 谎 在谈论“名”的不同的使用(见安东尼的评论)。 它不是只读的,它只是有一个长期的IE漏洞(最多V7),其中设置在表单字段“名称”只是部分有效。 特别是单选按钮不能正确接受。
微软认可的解决方案, 因为这里详述是使用IE浏览器的版本的createElement通话的同时设置属性的一个可怕的不好的特性:
var radio= document.createElement('<input type="radio" name="test" value="a" />');
可能是一个更好的办法,简直是用好老的innerHTML,如:
var div= document.createElement('div');
div.innerHTML= '<input type="radio" name="test" value="a" />';
var radio= div.firstChild;
这为我工作
alert(document.getElementById('testInput').name);
document.getElementById('testInput').name = 'someName';
alert(document.getElementById('testInput').name);
同
<input type="radio" name="test" id="testInput" />
您是否尝试过简单地分配一个新的名称为元素name
属性? 我不知道这是浏览器的跨如何,但它shold与任何支持DOM 1级的工作。
我不知道你为什么会使用的setAttribute来执行呢?
name属性不仅为输入元素读取。
见规范 。
望着W3C DOM兼容性-核心 ,你可以尝试使用使用setAttributeNode()代替的setAttribute()。 它可以在IE 6和上述方式工作。
IE浏览器的DOM不允许我运行时更改名称属性。 然而,使用jQuery更新的name属性上的IE浏览器的工作原理。 我对IE9测试。 举些例子,
<input id="ID0E2B" name="Field2" value="3" type="radio" />
$("#ID0E2B").attr("name", newName);