javascript - 未定义字段 javascript 循环

标签 javascript ajax string for-loop

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

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

undifined example

如果你仔细观察,你会看到我正在使用的循环,输出“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_string = "";

关于javascript - 未定义字段 javascript 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15115932/

相关文章:

javascript - Angular 2 - 检查默认值是否已更改

php - 调用与 javascript 函数位于不同文件中的 php 函数来从数据库检索数据

java - 在ajax调用中没有获得成功响应,每次都进入错误函数

javascript - Ajax返回页面Html代码返回(相同代码)

c# - 搜索两个值之间的字符串列表

javascript - 多个 .on() 函数不起作用

javascript - 将我的 html 元素动画化为不同的背景颜色。

regex - 删除第二个逗号之前的文本 ('' ,") 字符串替换模式

php - 如何使字符串的前两个字符大写?

javascript - 更改 Arshaw 全日历的当前日期?