我是html / js / jquery的真正初学者。
我正在尝试将用户输入保存到数组中,之后我想将该数组中的所有信息写入xml文件。
我的问题是我的表单由多个作业组成,这些作业都具有相同的输入字段。
这是第一份工作的简短例子:
<form>
<table class="wrapper">
<tr>
<td style="text-align: left">First Digit:
<div> <input id="fDigit" type="text" name="Job1[]" /></td>
<td style="text-align: left">System:
<div> <input id="system" type="text" name="Job1[]" /></td>
<td style="text-align: left">SAP Modul:
<div> <input id="sapModul" type="text" name="Job1[]" /></td>
</tr>
<tr>
<td style="text-align: left">Country:
<div> <input id="country" type="text" name="Job1[]" /></td>
<td style="text-align: left">Duration:
<div> <input id="duration" type="text" name="Job1[]" /></td>
<td style="text-align: left">Step Number:
<div> <input id="stepNumber" type="text" name="Job1[]" /></td>
</tr>
<tr>
<td style="text-align: left">Optional Text:
<div>
<textarea align ="left" id ="optionalText" name="Job1[]" cols="20" rows="2"> </textarea>
</div>
</td>
</tr>
</table>
</form>
我的剧本中有更多这些。
我现在想要做的是将每个Job的信息保存到一个数组中,这意味着Job1 []:上面显示的每个字段的用户输入,Job2 []:不同的用户输入但类似的输入字段与一样的名字。 可能有一个更容易的解决方案来做到这一点,但我只是想不出来。
很抱歉,如果这是一个太愚蠢的问题,但我试图找到解决方案多年,找不到帮助我的解决方案。
提前致谢!
答案 0 :(得分:0)
您不需要使用多个数组名称,因为javascript是客户端
只需使用Job1[]
答案 1 :(得分:0)
我建议您将数据组织为JSON对象,例如
[{"Country": a, jobs:[your array]},{"Country":b, jobs:[your array]}]
要向数组插入值,您可以使用:your_array.push(value)
希望得到这个帮助。
答案 2 :(得分:0)
您可以在输入名称中使用二维数组,第一个索引是行索引,第二个索引是列名称,类似Jobs[0][Country]
。最后,您将把所有数据放在一个数组中。
此外,如果您要重复为每个作业发布的标记,请避免在输入中使用id属性,因为这会产生无效的标记。 Id属性在HTML页面中必须是唯一的,而是使用类。
答案 3 :(得分:0)
对于初学者,最简单的解决方案可能是使用为您构建序列化的组件。你的表单应该有一个名字(属性),而id也可能有用。
我发现form2js非常实用,它可以管理将类似命名的字段收集到数组中。
我还制作了一个small fiddle,其中显示了一种自行收集信息的方法,例如:
var job1 = [];
$('[name="Job1[]"]').each(function(index, inputField) {
job1.push($(inputField).val());
});
console.log(job1);