jQuery表单输入到一个不工作的数组

时间:2013-07-11 02:14:19

标签: javascript jquery html input html-table

我正在开发游戏,并且有一个表单输入,用户输入字符数。一旦发生这种情况,每个角色的名称都会显示更多输入。我现在的问题是将这些名称读入数组。

当创建新输入时,还会创建一个名为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);
});

我的一些功能。

1 个答案:

答案 0 :(得分:2)

尝试这种方式:

$(".form").on('click', '#nameButton', function () {
    names = $(".newR").map(function () {
        return this.value;
    }).get();
    prompt(names);
});
  • 您可以使用on on动态元素进行事件委派
  • 您需要在.get()结果上执行.map()以将集合对象转换为数组。

<强> Demo