jquery clone select不保持值

时间:2011-01-05 00:15:06

标签: jquery

我正在尝试克隆一个feildset然后提交输入的内容并使用序列化选择。它工作正常,但选择不保持其价值。我已经尝试了几种我找到的方法,但似乎没有任何效果。以下是我克隆和设置当前数据的方法。

克隆时如何保留select的值?

 $('body').append('<form id="form-to-submit" style="visibility:hidden;"></form>');  
var fieldsetName = $this.parents('.fieldsetwrapper');  
$('#form-to-submit').html($(fieldsetName).clone());  
var data = $('#form-to-submit').serialize();  

3 个答案:

答案 0 :(得分:24)

option元素使用selected javascript属性维护其当前选择性(不要与selected属性混淆,后者对应于默认选择性)

由于jQuery的clone没有克隆当前的选择性(http://bugs.jquery.com/ticket/1294),所以你必须手动完成:

$('#form-to-submit').html($(fieldsetName).clone());
$('#form-to-submit select').val($('.fieldsetwrapper select').val());

答案 1 :(得分:3)

您应该能够将新select元素的值设置为旧元素的值:

$('#form-to-submit select').val($('.fieldsetwrapper select').val());

答案 2 :(得分:0)

就我而言,我正在使用

$('<form></form>').html($('.myDiv').clone())

并通过在标记中添加另一个表单来解决问题

$('.myForm').serialize()