日期:2014-05-16  浏览次数:20392 次

form表单元素更改name无效
更改name无效,请高手说下原因,代码如下
<html>
  <head>
  </head>
  <body>
    <form name="frmMain">
      <input type="text" name="aaa" value="aaa" >
    </form>
  </body>
  <script>
     var na=frmMain.aaa;
     na.setAttribute("name","aaap");
     var nb=document.createElement("input");
     na.insertAdjacentElement('afterEnd', nb);
     nb.setAttribute("name","aaa");
     nb.value="bbb";
     alert(frmMain.innerHTML);
     alert(frmMain.aaa.value);//得到的是na的值
     alert(frmMain.aaap.value);//异常,aaap未定义
  </script>
</html>

------解决方案--------------------
引用:
Quote: 引用:

你用的什么浏览器?
chrome29下测试正常的
另外,把script放进body内再试试

我的ie10,chrome都没问题,在firefox 提示错误

https://developer.mozilla.org/en-US/docs/Web/API/element.insertAdjacentHTML
从这里看的话,firefox不支持insertAdjacentHTML
insertAdjacentElement未知,MDN中搜不到。
------解决方案--------------------
name作为变量名本就不算标准写法,有问题就不要这么用呗
------解决方案--------------------
这样了

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
    <form name="frmMain">
      <input type="text" name="aaa" value="aaa" >
    </form>
<script type="text/javascript">
 var na=frmMain.aaa;
     na.setAttribute("name","aaap");
     var nb=document.createElement("input");
 if(na.insertAdjacentElement){