2015-02-11 54 views
0

我想克隆一行以保留我的文本框和评论字段中的值,并做一个正则表达式来做一个部分替换从crs1到crs2的id。但是,我无法得到这个工作。Jquery的克隆表单值和替换表单字段ID

<div id="wrapper"> 
    <div id="info-crs1">Course Information 


     <div id="course-crs1"> 
     <label for="txtcourse-crs1">Course 1</label><input type="text" id="txtcourse-crs1"/> 
     </div> 
     <div id="grade-crs1"> 
     <label for="txtgrade-crs1">Grade 1</label><input type="text" id="txtgrade-crs1"/> 
     </div> 
     <div id="comments-crs1">Comments 1 
      <textarea id="ta-comments-crs1"></textarea> 
     <div>  
    </div> 
</div>  
<input type="submit" value="clone"> 

这里是我的代码: http://jsfiddle.net/nLk6wg0o/5/

任何帮助,将不胜感激

+0

为什么你需要ID? – 2015-02-11 17:41:19

+0

@ A.Wolff我需要这个id,因为当用户提交表单时,formmail程序需要他们来识别每个表单控件(文本框,文本区域等)提交的值 – 2015-02-11 17:43:10

回答

1

你的代码替换原来的元素与被替换的一个。为了解决这个问题,你可以用这个代替的最后两行:

$original.after(newhtml); 

要克隆值你的第一个有这样的注视他们。此代码应该在克隆之前运行:

// Fixate 
$('#info-crs1 input').each(function(i, el) { 
    $(el).attr('value', $(el).val()); 
}); 

请注意,这只适用于输入字段,不适用于您的textarea。为了让textarea工作,你需要在fixate循环中添加一些额外的代码。

http://jsfiddle.net/nLk6wg0o/6/

+0

嗨,那对我有效 – 2015-02-12 16:10:25