Html 解析Go中属于一起的表单输入

Html 解析Go中属于一起的表单输入,html,forms,go,Html,Forms,Go,我想知道如何解析Go中一起属于的表单输入字段 以下示例中,每个数字和文本有2个输入。 输入的名称和数字都相同。 每一个的输入都属于一个整体,需要像这样解析它们 在解析输入时,是否有任何东西可以确保正确的顺序。。。? 还是最好将输入的每个名称与索引结合起来,例如。 mynumber1和mytext1、mynumber2和mytext2 <form> <ul> <li> <input type="number"

我想知道如何解析Go中一起属于的表单输入字段

以下示例中,每个数字和文本有2个输入。 输入的名称和数字都相同。 每一个的输入都属于一个整体,需要像这样解析它们

在解析输入时,是否有任何东西可以确保正确的顺序。。。? 还是最好将输入的每个名称与索引结合起来,例如。 mynumber1和mytext1、mynumber2和mytext2

<form>
    <ul>
        <li>
            <input type="number" name="mynumber" value="">
            <input type="text" name="mytext" value="">
        </li>
        <li>
            <input type="number" name="mynumber" value="">
            <input type="text" name="mytext" value="">
        </li>
        </ul>
</form>

如Burak Serdar对问题的评论所述,给定字段名的值按文档顺序排列。如果文档包含成对的mynumber和mytext输入,则在两个切片中使用相同的索引来获取相应的值:

 // Set req.Form by calling ParseForm.
 if err := req.ParseForm(); err != nil {
    // handle bad form error
 }
 texts := req.Form["mytext"]
 numbers := req.Form["mynumber"]

 ...

 if i >= len(texts) || i >= len(numbers) {
     // handle index out or range error
 }
 text := texts[i]
 number := nubmers[i]

另见

不能保证它们会一起提交。如果它们是不同的输入,它们应该有不同的名称,如果它们是相关的,它们应该有相关的名称,例如mynumber1和mytext1。@Adrian,实际上,有一个预定义的顺序:@BurakSerdar yet Go不保证Request.Form/Request.PostForm或URL.Query.ParseQuery中元素的顺序。ParseQuery只是将找到的值附加到映射中的切片上,因此无法保证mynumber或text是否会排在第一位,但mynumber和text的连续值将按顺序排列。