Jquery修改input name修改不了

2011年7月12日 | 分类: IE, Jquery, 代码民工, 软生活 | 标签: ie, Jquery, w3help, web标准, 兼容性, 浏览器, 软生活
 

项目中用到的,clone一段输入框然后修改name在添加到另外一块区域中。

但是测试到IE,杯具了–clone后不支持修改input的name。

例如:

$(input).attr(‘name’,'newName’);

在ie里使用F12的工具查看,input的属性里多出了一个submitName。原来name的属性木有变化。

 

股沟了下,微软说:

The NAME attribute cannot be set at run time on elements dynamically created with the createElement method.
To create an element with a name attribute, include the attribute and value when using the createElement method.

意思就是运行时,不能修改动态创建元素的Name属性,想修改?去重新创建个吧。。。

使用Jquery的话就可以新建HTML代码然后AppendTo到父元素。

但是,有些情况可能就不太适应,比如我这项目,某些input有些自建属性是动态的。手写HTML去加入到父元素的话,位置又可能不太好控制。

想了半天终于想出个解决方案,可能不太完美,但是也解决了项目中遇到的问题:

使用outerHTML属性,获得元素的html代码,然后replace要name的值。这样clone之后的元素的代码也能按照想象的去实现修改了。

例如:input.outerHTML=input.outerHTML.replace(‘name’,'newName’);

但是outerHTML属性,IE,Chrome都支持,Firefox不支持,所以需要判断下浏览器,如果是IE就放心使用吧,反正人家都烂成这样了。其他的,还是照常用jquery实现吧。。

BTW:顺便分享个Web标准,浏览器兼容性问题速查网站W3help.org

最后再次诅咒下坑爹的IE。

if($.broswer.msie){

    GoHell();

}

你可能感兴趣的:(jquery)