2013-07-23 75 views
0

我是一个真正的初学者在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 []:不同的用户输入,但具有类似的输入字段同名。 可能有一个更简单的解决方案来做到这一点,但我只是不能指出一个。

对不起,如果这是一个太愚蠢的问题,但我试图找到解决方案的年龄,并找不到一个帮助我。

在此先感谢!

回答

0

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

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

我还做了一个small fiddle,它显示了一种自己收集信息的方法,例如像这样。

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

干杯!我将用它来收集信息稍后的XML! –

+0

使用名称选择器效率不高,因此稍后可能需要添加所有job1-输入一个类,然后使用类选择器$(“。job1”)来收集它们。 – Marcus

0

你不需要因为JavaScript是客户端使用多个数组名侧

只使用Job1[]

0

我建议你整理数据作为一个JSON对象,例如

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

并为数组插入一个值,可以使用:your_array.push(value)

希望这个帮助。

0

您可以在输入名称中使用二维数组,第一个索引是行索引,第二个索引是列名,如Jobs[0][Country]。然后最后你将所有的数据放在一个数组中。另外,如果您重复为每个作业发布的标记,请避免在输入中使用id属性,因为这会产生无效标记。 ID属性在HTML页面中必须是唯一的,请改为使用类。

+0

谢谢!我没有想到这一点!我去给这个尝试 –