2013-07-11 37 views
0

我正在做一個遊戲,並且有一個表單輸入,用戶輸入字符數。一旦發生這種情況,每個人物的名字會出現更多的輸入。我現在的問題是將這些名稱讀入數組中。jQuery表單輸入到一個不工作的數組中

當創建新的輸入時,還會創建一個名爲nameButton的新按鈕,這是我的問題,當我試圖單擊時,值應該存儲在數組中時沒有任何反應。我在函數的末尾提了一個提示,只是爲了檢查,甚至沒有被調用。

如果大家有什麼建議,請讓我知道這裏是jsFiddle

function nameRecording(names,$this){ 
    var addRows='<tr id=newRows>'; 
    for(var i =1; i<=names; i++) 
    { var nearTr=$this.closest('tr'); 
      addRows=addRows+'<td>Name one:</td><td><form><input type="text" name="charcItem" class = "newR"/></form></td>'; 
    } 
    addRows=addRows+'<td><div class="button" id="nameButton"> Add! </div></td></tr>'; 
    nearTr.after(addRows); 
};  
$('#nameButton').click(function(){ 
    names=$(".newR").map(function(){ 
     return $(this).val(); 
    }); 
    prompt(names); 
}); 

而且還有我的一些功能。

+0

可能重複的[jQuery的 - 點擊事件不起作用上動態地生成的元素](http://stackoverflow.com/questions/6658752/jquery-click-event-doesnt- work-on-dynamic-generated-elements) – Barmar

+0

絕對不是重複的@Barmar,我的問題是通過點擊功能的功能。 – bala

+0

您接受的答案主要是解決點擊功能。 – Barmar

回答

2

試試這個方法:

$(".form").on('click', '#nameButton', function() { 
    names = $(".newR").map(function() { 
     return this.value; 
    }).get(); 
    prompt(names); 
}); 
  • 您可以通過對動態元素
  • 你需要做一個.get().map()結果的收集對象轉換成數組使用事件代表團。的

Demo

+0

順便說一下,如果我打算使用它們,我是否必須將這些轉換爲int? – bala

+0

將什麼轉換爲int?他們的名字是正確的? – PSL

+0

但是說我想用他們的年齡,我會不得不轉換爲int – bala

相關問題