4

由于我仍在尝试解决我的其他问题(这里需要一些帮助!),我正在探索如何命名相同但在不同行上的表单元素。

按照此处的示例,文章的作者将他的文本框命名为“input_box_one”。他编写的 jQuery 函数也将输入框复制为具有相同名称。我想知道这样命名他的文本框的原因,以及他要编写的服务器脚本如何从名称相似的文本框中收集输入?

我将用经典的 ASP 编写。

<table id = "options-table">                    
    <tr>
        <td>Input-Box-One</td>
        <td>Input-Box-Two</td>
        <td>&nbsp;</td>
    </tr>

    <tr>
        <td><input type = "text"    name = "input_box_one[]" /></td>
        <td><input type = "text"    name = "input_box_two[]" /></td>
        <td><input type = "button" class = "del" value = "Delete" /></td>
    </tr>                  

    <tr>
        <td><input type = "text"    name = "input_box_one[]" /></td>
        <td><input type = "text"    name = "input_box_two[]" /></td>
        <td><input type = "button" class = "add" value = "Add More" /></td>
    </tr>
</table>

谢谢!

4

3 回答 3

6

在 ASP Classic 中,Request.Form("someName")返回一个实现IStringList接口的对象。该接口有两个成员Item([i]]),一个是默认属性,另一个是Count.

如果您发布到 ASP,您应该删除 [] 后缀。您可以使用附加的索引器参数访问使用相同名称的多个值i。例如

 Dim someValue :  someValue = Request.Form("someName")(2)

我不记得这个集合是基于 0 还是 1,但应该很容易测试。该对象也可能支持For Each,但在您的场景中可能没有那么有用。

于 2012-06-14T13:02:45.963 回答
4

[]是PHP主义。它使 PHP 表单解析器将数据表示为数组$_POST['fieldname']$_GET['fieldname']数组。

PHP 是我所知道的唯一一种语言,标准 HTML 表单数据解析器需要数据中的特殊名称才能在标量模式和数组模式之间切换。

于 2012-06-14T12:18:41.313 回答
0

name在 Classic ASP 中,多个具有相同名称的输入字段将在 input 属性下显示为逗号分隔值。

所以,

<input type="text" name="input_box_one[]" value="foo" />
<input type="text" name="input_box_one[]" value="bar" />

form经典 ASP 中提交后,request.form("input_box_one[]")

会给你:

"foo,bar"

于 2012-06-14T12:21:44.167 回答