Por ejemplo dándole otro nombre al campo se podría solventar. He notado complicaciones entre navegadores:
Código PHP:
<form name="formulario">
<input type="text" name="name" value="hola" />
<button onclick="
alert('document.formulario[\'name\'].value = '+document.formulario['name'].value);
alert('document.formulario.name.value = '+document.formulario.name.value);
alert('document.formulario.getAttribute(\'name\') = '+document.formulario.getAttribute('name') );
alert('document.formulario.getAttribute(\'name\').value = '+document.formulario.getAttribute('name').value );
alert('document.formulario.getAttributeNode(\'name\').nodeValue = '+document.formulario.getAttributeNode('name').nodeValue );
">datos</button>
</form>
Resulta que en IE
document.formulario.getAttribute("name") nos devuelve el campo (incorrectamente), y en FF el atributo (como debería ser).
Sólo con getAttributeNode devuelven los dos el atributo. Con lo demás (
["name"] y
.name) devuelven los dos el campo.
Pero no recomendaría llamar
name a un campo
Para hallar el valor del atributo
name del campo
name habría que escribir algo tan feo como esto:
document.formulario.name.name
Un saludo.