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();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值