如何使用 jQuery 复制和清除表单元素?

Posted

技术标签:

【中文标题】如何使用 jQuery 复制和清除表单元素?【英文标题】:How to duplicate and clear a form element using jQuery? 【发布时间】:2011-11-19 11:53:24 【问题描述】:

如果我在表单中有以下 html

<div class='example'>
   <div class='row'>
       <input name='first_field' type='text' value='Hello' />
       <input name='second_field' type='text' value='World!' />
   </div>
</div>

我如何去创建这个(第一个)“行”的副本,去掉值,以便在之后根据需要附加多个用户条目。值可能已经存在的原因(如本例所示)是针对正在编辑数据的情况。我想获得:

   <div class='row'>
       <input name='first_field' type='text' value='' />
       <input name='second_field' type='text' value='' />
   </div>

我的想法是这样的:

var row = $('.example').find('.row:first-child').clone(); 
row.find('[name]').each(function() 
  $(this).val('');
);

但这不起作用,因为它似乎没有删除值,也没有捕获外部 html(包装器)。

谁能给点建议?

谢谢。

【问题讨论】:

你在 ".row:first-child" 之后缺少一个 ' 吗? 【参考方案1】:

您的 js 中有语法错误。 .find('.row:first-child) 应该是 .find('.row:first-child'),但是对于克隆,默认行为是删除值。划掉那个...这显然只是为了克隆实际的输入元素。

http://jsfiddle.net/Yb2Ym/

var row = $('.example').find('.row:first-child').clone();  
row.find('[name]').each(function() 
  $(this).val('');
);
$(".row:last").after(row)

【讨论】:

以上是关于如何使用 jQuery 复制和清除表单元素?的主要内容,如果未能解决你的问题,请参考以下文章

使用jquery实现的清空表单元素代码实例

如何在 HTML 表单的占位符元素中插入 jQuery 字符串

使用ajax提交后如何清除ckeditor表单?

JQuery,如何清除,除了点击的元素以外,其他所有元素

JQuery如何循环取出表单元素ID

使用jquery提交后清除表单[重复]