【问题标题】:undefined field javascript loop未定义字段 javascript 循环
【发布时间】:2013-02-27 15:31:26
【问题描述】:

我正在尝试将 ajax 与我正在处理的表单一起使用,为此我正在构建一个帖子字符串, 看起来像这样:field_name=field_value&field_name=field_value 等等..

我无法弄清楚“未定义”的来源。看看这个截图

如果你仔细看,你会看到我正在使用的循环,输出“undefinedemail=Emailpassword=Password”而不是“email=Email&password=Password”

这是我正在使用的表单和 javascript 的精简版:

<form id="signup_form" enctype="multipart/form-data" action="register.php" method="post">
<input name="email" type="text" value="Email"/>
<input name="password" type="text" value="Password"/>
<input name="email_confirm" type="text"  value="Confirm Email"/>
<input name="password_confirm" type="text" value="Confirm Password"/>
<input name="first_name" type="text" value="First Name"/>
<input name="country" type="text" value="Country"/>
<input name="birthday" type="text" value="Birthday DD/MM/YYYY"/>
<input name="last_name" type="text" value="Last Name"/>
<input name="city" type="text" value="City"/>
<input name="profession" type="text" value="Profession"/>
<input type="radio" name="gender" value="Male"><span>Male</span>
<input type="radio" name="gender" value="Female"><span>Female</span>
<input type="checkbox" name="user_type" value="User type" /><span>Checkbox</span>
<button type="submit" name="submit" class="" id="submit">Sign up</button>
</form>

javascript:

var post_string;
var input = document.forms["signup_form"].getElementsByTagName("input");
for(var i = 0; i < input.length; i++) { 

post_string += input[i].name + "=" + input[i].value;
if(i > 0 && i < input.length) { post_string += "&"; }

}

感谢您的帮助!

【问题讨论】:

  • 请发布您的 JS 代码,而不仅仅是标记。

标签: javascript ajax string for-loop


【解决方案1】:

您确实忘记使用空字符串初始化您的累加器变量,因此您第一次将其评估的内容附加到 undefined。使用

var post_string = "";

【讨论】:

    【解决方案2】:

    看起来好像您将post_string 声明为未定义变量,而不是将其声明为空字符串,例如var post_string = "".

    这意味着,对于post_string 的第一次查找,它会返回未定义的变量。

    【讨论】:

    • 哇,我不敢相信我连续 3 个小时错过了这个。谢谢你。现在唯一剩下的就是弄清楚为什么在最后一次构建中添加了“&”字符。有什么想法吗?
    • @user1614199:如果要在值后面附加 &amp; 字符,请使用 if (i &lt; input.length-1)
    • 刚做了,玩的时候得到了同样的答案。不过感谢您的帮助。
    • @user1614199 在 JavaScript 中很容易错过,动态类型可能是你最好的朋友,也是最大的敌人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 2016-06-19
    • 2015-05-12
    • 1970-01-01
    • 2011-09-28
    相关资源
    最近更新 更多