如何为表单提交命名多个选项

时间:2015-12-17 15:19:27

标签: html node.js forms express submit

如果我有多个select,其中multiple设置为true,我如何在表单中命名我的选择。

这是一个例子:

<form action="/product/create" method="post">   
<table>
    <tr>
        <td>
            <input type="text" name="product[name]">
        </td>
        <td>
            <select name="product[taxes]" multiple>
                <option value="1">Tax A</option>
                <option value="2">Tax B</option>
                <option value="3">Tax C</option>
            </select>
        </td>
        <td>
            <input type="text" name="product[price]">
        </td>
    </tr>
    <tr>
        <td>
            <input type="text" name="product[name]">
        </td>
        <td>
            <select name="product[taxes]" multiple>
                <option value="1">Tax A</option>
                <option value="2">Tax B</option>
                <option value="3">Tax C</option>
            </select>
        </td>
        <td>
            <input type="text" name="product[price]">
        </td>
    </tr>
    <tr>
        <td>
            <input type="text" name="product[name]">
        </td>
        <td>
            <select name="product[taxes]" multiple>
                <option value="1">Tax A</option>
                <option value="2">Tax B</option>
                <option value="3">Tax C</option>
            </select>
        </td>
        <td>
            <input type="text" name="product[price]">
        </td>
    </tr>
</table>

现在,如果我为每种产品选择多种税。我如何知道为每条线选择了哪些税,因为所有选定的项将合并为一个数组。

这是我得到的帖子的正文:

{
    'product[name]': [ 'test1', 'test2', 'test3' ],
    'product[taxes]': [ '1', '2', '1', '3', '2' ],
    'product[price]': [ '1', '2', '3' ] 
}

1 个答案:

答案 0 :(得分:0)

由于多重选择可以发送 0-n 结果,因此无法根据数据中值的位置区分具有相同名称的多个控件。

您需要为名称或所有值添加一些识别标记。

name="rowId-product[name]"

......可能最简单。 (其中rowId是前缀为其中每个控件名称的行的标识符。)