【问题标题】:Dynamic fields JS value showing "undefined"动态字段 JS 值显示“未定义”
【发布时间】:2015-09-24 09:25:03
【问题描述】:

下面是简单的 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,则返回:undefined

怎么了?

谢谢!

【问题讨论】:

  • 因此您获取输入字段的值并将其分配给数据。 data["user[0].first_name"] 中有什么内容?
  • 已解决。您不能在 ID 字段中传递点。我用过:user1first_name
  • 你想做什么?

标签: javascript html undefined var


【解决方案1】:

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

这里,jquery 不会像 id = user[0].first_name 那样检查

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

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

DEMO

【讨论】:

    【解决方案2】:

    这行得通!

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

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

    编码愉快。

    【讨论】:

      【解决方案3】:

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

      相反,尝试根据喜欢的用户数量使用 jQuery 创建“输入”元素

      $.each(users, function(index, user){
      
         $(body).append('<input id="'+user.first_name+'"></input>');
      
      });
      

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

      现在

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-02
        • 2021-09-21
        • 1970-01-01
        • 2014-06-16
        • 1970-01-01
        • 2017-04-06
        • 1970-01-01
        相关资源
        最近更新 更多