我正在尝试克隆一个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();
答案 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()