动态字段JS值显示“未定义”

时间:2015-09-24 09:25:03

标签: javascript html undefined var

以下是简单的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 用户[0] .first_name 返回:未定义

那里有什么问题?

谢谢!

3 个答案:

答案 0 :(得分:1)

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

此处,jquery不会检查id = user[0].first_name

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

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

DEMO

答案 1 :(得分:0)

在Javascript中,你不能给id =“user [0] .first_name”。

相反,尝试根据用户数量

使用jQuery创建'input'元素
$.each(users, function(index, user){

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

});

OR

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

现在

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

答案 2 :(得分:0)

这有效!

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

我们需要先将整数更改为字符串。 也不要忘记从id中取出点操作符(参见Nagesh的回答)

快乐的编码。