1

我在选择框中有几个值。提交表单时是否可以同时获取<option>标签之间的值和文本?

<option value="413">Highland </option>
<option value="414">Inverclyde </option>

或者,我想我必须将名称存储在表或数组中以进行检索,但如果我可以在提交表单时将两者都插入表中会容易得多。

4

3 回答 3

4

正如 Stephen Moretti 所指出的,至少有两种方法可以从值中获取文本。

您还可以使用包含正确值和选择值文本的列表。所以,而不是:

<option value="23">Twenty Three</option>

利用

<option value="23,TwentyThree">Twenty Three</option>

并在后端使用 list*() 函数。

最后,您可以使用 JavaScript 将所选选项的文本存储在隐藏字段(或类似字段)中。在我看来,这是最没有吸引力的选择。首先,它会比其他选项工作更多,其次,如果在客户端关闭 JS,它将失败。

根据数据的大小/类型,我可能会重写选项值,如我所描述的,或者关闭查找表,如 Stephen 所描述的。

于 2010-09-15T13:06:00.160 回答
2

如果您的选择中只有几个值/文本对,则只需存储该值。如果您需要在 select 以外的其他地方输出文本,只需编写 if/elseif/else 或 case 块来显示文本。

如果您有很多值/文本对,那么最好在数据库中创建一个包含这些的查找表。您可以使用它来生成您的选择并在以后从存储的值中输出文本。

如何判断是否有太多的值/文本对?如果编写 case 块来显示它们会导致大量乏味的代码。;)

于 2010-09-15T12:51:49.600 回答
0

另一种选择是将值/文本对的结构存储在会话范围中,然后在表单操作页面上,您可以使用该值轻松查找文本。

这样做的美妙之处在于它完全是服务器端的,并且不包括额外的数据库访问。

如果您不想保留它,请从会话范围中删除该结构。

于 2010-09-17T13:39:44.283 回答