我有以下代码复制表单行,包括下拉列表和输入字段。除了一个小问题外,这段代码完美无缺。
http://jsfiddle.net/8kvesskv/6/
第一行中输入的值将复制到新行。
无论如何都要复制行,但是新行的输入和下拉值都是默认值。即:下拉列表中没有选择任何项目,输入为空。
我试过这个问题:
$newRow.find('#BoxName').val($("#TemplateRow").find('#BoxName').val());
$newRow.find('#BoxComparison').val($("#TemplateRow").find('#BoxComparison').val());
$newRow.find('#BoxVal').val($("#TemplateRow").find('#BoxVal').val());
对此:
$newRow.find('#BoxName').val($("#TemplateRow").find('#BoxName').val(''));
$newRow.find('#BoxComparison').val($("#TemplateRow").find('#BoxComparison').val(''));
$newRow.find('#BoxVal').val($("#TemplateRow").find('#BoxVal').val(''));
这导致新的违约,但也是第一行!
我有什么想法可以做到这一点吗?
答案 0 :(得分:1)
使用此代码,您可以克隆行并重置字段值:
var $newRow = $('#TemplateRow').clone(true).removeAttr('id');
$newRow.find('#BoxName').val('');
$newRow.find('#BoxComparison').val('');
$newRow.find('#BoxVal').val('');
$newRow.find('input[name="DeleteBoxRow"]').prop('checked', false); //Example: search by name
答案 1 :(得分:0)
为什么不在页面加载时将行存储在变量中,例如:
newRow = "<tr>" + $("#TemplateRow").html() + "</tr>";
然后你在点击功能中所需要做的就是在按钮之前添加newRow,就像你已经在做的那样。