2012-07-06 55 views
2

我已經申請單,我需要用克隆按鈕克隆和刪除按鈕,刪除該克隆只有我做了這個簡單的腳本提交 但我相信它包含一些錯誤的,因爲它的不工作:)jQuery的克隆形式的單場和增量ID

HTML

<form method="post"> 
    <div id="fileds"> 
    <select name="lang" id='lang'> 
    <option>select language</option> 
    </select> 
    </div> 
    </form> 
    <div class="actions"> 
     <button class="clone">Clone</button> 
     <button class="remove">Remove</button> 
    </div> 

JS

$(function(){ 
    var regex = /^(.*)(\d)+$/i; 
    var cloneIndex = $("#lang").length; 

    $("button.clone").live("click", function(){ 
     $(this).parents("#lang").clone() 
      .appendTo(".fileds") 
      .attr("id", "lang" + cloneIndex) 
      .find("*").each(function() { 
       var id = this.id || ""; 
       var match = id.match(regex) || []; 
       if (match.length == 3) { 
        this.id = match[1] + (cloneIndex); 
       } 
     }); 
     cloneIndex++; 
    }); 


}); 

我還沒有找到如何編寫刪除代碼刪除按鈕

謝謝

+3

'#lang'不'.clone'按鈕 – Dips 2012-07-06 04:11:39

回答

2

1)#lang不是.clone

2).fields#field,因爲這父是和ID

此代碼應工作。住Demo

$(function() { 
    var counter = 1; 

    $(".clone").live("click", function() { 
     $("#lang:first").clone().appendTo("#fileds").addClass("lang" + counter); 
     counter++ 
    }); 

    $(".remove").live('click', function() { 
     if (counter > 1) { //Only apply if the lang field is more than 1 
      counter = counter - 1; 
      $("#lang:last").remove(); 
     } 
    }); 

});​ 
+0

的父母,這是工作十分感謝,但有關Remove按鈕是什麼? – Marco 2012-07-06 04:21:01

+0

見更新的代碼 – Dips 2012-07-06 04:37:03

+0

這一次它不工作的所有:)不知道爲什麼 – Marco 2012-07-06 07:45:25

0

lang不是按鍵的父母,我添加了一個類和刪除按鈕的處理程序,試試這個:

$(function(){ 
    $(".clone").on("click", function() { // you can use `on` instead of live which is deprecated 
     var cloneIndex = $(".lang").length; // you can find the the current length of `.lang` within the handler 
     $(".lang:last").clone() // clones the last element with class of `lang` 
      .attr("id", "lang" + cloneIndex) 
      .appendTo("#fileds") // change this to id selector 
     }); 
    $("button.remove").on("click", function(){ // '.remove' click handler 
     $(".lang:last").remove() 
    }) 
}); 

DEMO

+0

其實例的工作,但是當我用它在我的網頁並不在它的工作都 – Marco 2012-07-06 04:38:46

+0

@Marco注意,我已經改變了HTML標記! – undefined 2012-07-06 04:40:09

+0

確定其工作,但它刪除源嫌我不想刪除原來的申請 – Marco 2012-07-07 02:23:32