我正在开发一款游戏,有一个表单输入,用户可以在其中输入字符数。一旦发生这种情况,每个 Angular 色的名字就会出现更多的输入。我现在的问题是将这些名称读入数组中。
当创建新的输入时,还会创建一个名为 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);
});
还有我的一些功能。
最佳答案
试试这个方法:
$(".form").on('click', '#nameButton', function () {
names = $(".newR").map(function () {
return this.value;
}).get();
prompt(names);
});
- 您可以使用 on 来对动态元素使用事件委托(delegate)
- 您需要对
.map()
结果执行.get()
将集合对象转换为数组。
<强> Demo
关于javascript - jQuery 表单输入到数组中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17583983/