【问题标题】:jQuery form input into an array not workingjQuery表单输入到数组中不起作用
【发布时间】:2017-07-05 05:53:09
【问题描述】:

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

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

还有一些我的功能。

【问题讨论】:

标签: javascript jquery html input html-table


【解决方案1】:

试试这个方法:

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

Demo

【讨论】:

  • 顺便说一句,如果我打算这样使用它们,我是否必须将它们转换为 int ?
  • 但是说我想为他们的年龄使用这个,我是否必须转换为 int
  • 是的,这样做更好,您可以在地图内输入return +this.value;。用一元加号作为前缀,或者只使用parseInt(this.value, 10)。如果它不能转换为整数,它将返回NaN
猜你喜欢
  • 2016-06-10
  • 1970-01-01
  • 2017-01-13
  • 2021-08-02
  • 1970-01-01
  • 2018-08-21
  • 2020-07-10
  • 1970-01-01
  • 2013-12-31
相关资源
最近更新 更多