2015-02-11 77 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