未定义字段javascript循环

未定义字段javascript循环,javascript,ajax,string,for-loop,Javascript,Ajax,String,For Loop,我试图将ajax与我正在处理的表单一起使用,为此我构建了一个post字符串, 看起来是这样的:field\u name=field\u value&field\u name=field\u value等等 我很难弄清楚“未定义”是从哪里来的。看看这个截图 如果仔细观察,您将看到我使用的循环,输出“undefinedemail=Emailpassword=Password”而不是“email=email&Password=Password” 下面是我正在使用的表单和javascript的精简版

我试图将ajax与我正在处理的表单一起使用,为此我构建了一个post字符串, 看起来是这样的:field\u name=field\u value&field\u name=field\u 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 += "&"; }

}
var post\u字符串;
var输入=document.forms[“signup_form”].getElementsByTagName(“输入”);
对于(var i=0;i0&&i

谢谢你的帮助

您确实忘记了用空字符串初始化累加器变量,因此第一次将它计算的内容附加到
未定义的
。使用

var post_string = "";

您确实忘记了用空字符串初始化累加器变量,因此第一次将它计算的内容追加到
未定义的
。使用

var post_string = "";

它看起来像是将
post\u string
声明为未定义变量,而不是将其声明为空字符串,例如
var post\u string=“”


这意味着,对于第一次查找
post\u string
,它将返回未定义的变量。

看起来好像您将
post\u string
声明为未定义的变量,而不是将其声明为空字符串,例如
var post\u string=”“


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

请发布您的JS代码,而不仅仅是标记。请发布您的JS代码,而不仅仅是标记。哇,我真不敢相信我连续三个小时都错过了。非常感谢。现在唯一剩下的事情就是弄清楚为什么要在最后一次构建中添加“&”字符。有什么想法吗?@user1614199:if(i
如果你在值后面加上
&
字符,就用
if(i
吧。刚刚做了,玩的时候得到了同样的答案。感谢您的帮助。@user1614199在JavaScript中很容易漏掉它,动态键入可能是您最好的朋友,也是最坏的敌人。哇,我简直不敢相信我连续3个小时漏掉了它。非常感谢。现在唯一剩下的事情就是弄清楚为什么要在最后一次构建中添加“&”字符。有什么想法吗?@user1614199:if(i
如果你在值后面加上
&
字符,就用
if(i
吧。刚刚做了,玩的时候得到了同样的答案。感谢您的帮助。@user1614199在JavaScript中很容易漏掉,动态键入可能是您最好的朋友,也是最坏的敌人。