将用户输入保存在Array中

Save user input in Array

本文关键字:Array 存在 保存 用户 输入      更新时间:2023-09-26

我是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>

我的脚本中还有更多这样的内容。

我现在想做的是将每个作业的信息保存到一个数组中,意思是Job1[]:对于上面显示的每个字段的用户输入,Job2[]:不同的用户输入但具有相同名称的类似输入字段。也许有一个更简单的解决方案,但我就是想不出来。

如果这是一个太愚蠢的问题,我很抱歉,但我试图找到解决方案,但找不到一个能帮助我的。

提前感谢!

对于初学者来说,最简单的解决方案可能是使用一个为您进行表单序列化的组件。表单应该有一个名称(属性),id可能也会很有用。

我发现form2js非常实用,它可以管理将类似名称的字段收集到数组中。

我还做了一个小小提琴,展示了一种自己收集信息的方法,例如这样。

var job1 = [];
$('[name="Job1[]"]').each(function(index, inputField) {
    job1.push($(inputField).val());
});
console.log(job1);

您不需要使用多个数组名称,因为javascript是客户端

只需使用Job1[]

我建议您将数据组织为JSON对象,例如

[{"Country": a, jobs:[your array]},{"Country":b, jobs:[your array]}]

要向数组中插入值,可以使用:your_array.push(value)

希望得到帮助。

您可以在输入名称中使用二维数组,第一个索引是行索引,第二个是列名,类似于Jobs[0][Country]。最后,您将在一个数组中拥有所有数据。

此外,如果您重复为每个作业发布的标记,请避免在输入中使用id属性,因为这会产生无效的标记Id属性在HTML页面中必须是唯一的,请改用类。