显示 "undefined" 的动态字段 JS 值

Dynamic fields JS value showing "undefined"

下面很简单HTML:

<input type="text" class="form-control" id="user[0].first_name" name="user[0].first_name" placeholder="First Name">

这是 JS:

    emailIndex = 0;
for (var i = 0; i <= emailIndex; i++) {
       data["user[" + i + "].first_name"] = $("#user[" + i + "].first_name").val();

    }

如果我尝试打印 ID user[0].first_name returns: undefined

怎么了?

谢谢!

在上面的代码中,#user[" + i + "].first_name执行后会是#user[0].first_name

在这里,jquery 不会像 id = user[0].first_name

那样检查

但它会将其视为 id = user[0]class = first_name

所以,您在 jquery 中不会得到正确的结果,但您可以在 javascript

中得到正确的结果

DEMO

在Javascript中,不能给id="user[0].first_name".

相反,尝试使用 jQuery 创建 'input' 元素,基于像

这样的用户数量
$.each(users, function(index, user){

   $(body).append('<input id="'+user.first_name+'"></input>');

});

$(body).append('<input id="'+user[0].first_name+'"></input>');

现在

你可以通过你写的JS代码得到它的val()

这有效!

for (var i = 0; i <= emailIndex; i++) {
       alert($('#user_'+i.toString()+'_first_name').val());
    }

我们需要先将整数转换为字符串。 也不要忘记从 id 中取出点运算符(参见 Nagesh 的回答)

编码愉快。