表单使用clone方法后, 原有select无法生效

Posted mayBel

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表单使用clone方法后, 原有select无法生效相关的知识,希望对你有一定的参考价值。

textarea和select的值clone的时候会丢掉,在clone的时候将val再重新赋值一下,如果知道这个了就加单了
 

测试发现,textarea和select的jquery的clone方法有问题,textarea和select的值clone的时候会丢掉,发现这个是jquery的一个bug,上不了的可以看下代码,比较简单。就是在clone的时候将val再重新赋值一下,如果知道这个了,就简单了自己写。

引入到你要用的clone的页面就ok

jquery.fix.clone.js

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
(function (original) {
jQuery.fn.clone = function () {
var result = original.apply(this, arguments),
my_textareas = this.find(‘textarea‘).add(this.filter(‘textarea‘)),
result_textareas = result.find(‘textarea‘).add(result.filter(‘textarea‘)),
my_selects = this.find(‘select‘).add(this.filter(‘select‘)),
result_selects = result.find(‘select‘).add(result.filter(‘select‘));
  
for (var i = 0, l = my_textareas.length; i < l; ++i) $(result_textareas[i]).val($(my_textareas[i]).val());
for (var i = 0, l = my_selects.length; i < l; ++i) result_selects[i].selectedIndex = my_selects[i].selectedIndex;
  
return result;
};
}) (jQuery.fn.clone);

以上是关于表单使用clone方法后, 原有select无法生效的主要内容,如果未能解决你的问题,请参考以下文章

jQuery clone() FireFox 错误 - 无法提交克隆的表单

html表单提交后显示“disabled无法获取数据”怎么办?

为啥我使用 unshare(CLONE_NEWUSER) 后无法运行某些程序

select的disabled形式的数据,使用表单序列化方式无法将数据传到后台

jquery中clone()实现表单中增加和减少输入项

c# Clone方法