选择选项值可以是不同的类型吗?
我想知道什么是选择选项值的良好做法。选择选项值可以是不同的类型吗?
例
<select name="select">
<option value="0-9">Sample</option>
<option value="a-z">Sample</option>
<option value="this is sample value">Sample</option>
<option value="this-is-sample-value">Sample</option>
<option value="this_is_sample_value">Sample</option>
<option value="this & is | sample ** value">Sample</option>
</select>
我是一个有点困惑在这里。一样喜欢input text
和textarea
对于可在选项元素的value属性中设置的数据类型没有限制。当然,HTML中具有特殊含义的字符需要用适当的实体来表示(例如&
为&
(尽管问题中的字符符合规则的“后跟空格字符”的例外))。
该属性被定义为含有CDATA:
<!ELEMENT OPTION - O (#PCDATA) -- selectable choice -->
<!ATTLIST OPTION
%attrs; -- %coreattrs, %i18n, %events --
selected (selected) #IMPLIED
disabled (disabled) #IMPLIED -- unavailable in this context --
label %Text; #IMPLIED -- for use in hierarchical menus --
value CDATA #IMPLIED -- defaults to element content --
>
- http://www.w3.org/TR/html4/interact/forms.html#h-17.6
CDATA是从 字符原稿的字符集的序列,并且可以包括 字符实体。用户 剂应如下解释属性 值:
- 与字符替换字符实体,
- 忽略换行符,
- 替换为单个空格每个回车或标签。
用户剂可以忽略前导和 在CDATA 属性值尾部的空白(例如,“设为myVal” 可以被解释为“设为myVal”)。 作者不应声明属性 值与前导或尾随白色 空间。
对于CDATA 属性值的一些HTML 4个属性,说明书 强加合法值的设定 为属性进一步约束 可以不被DTD来表示。
- http://www.w3.org/TR/html4/types.html#type-cdata
规范没有规定该选项元素的值属性的其他限制。
同一个文本类型的输入选择值 - 它可以是字符串,浮点数等,这更是一个问题,这是最可靠的,当你处理表单数据进行解析。
张贴的值将是与选择对应的一个。
在这方面,它的处理方式与输入类型文本相同。
是的,它是一个字符串类型,可以有任何值。当您提交表单时价值就会提高,并且存在限制。
限制取决于您在服务器端使用哪种技术。
如ASP.Net的情况下,当您尝试发布特殊字符,例如&或特别< SCRIPT>某个脚本</SCRIPT>或类似的字符,这是HTML标签的一部分,或者可能是一个危险的脚本。 asp.net检查发布的数据并抛出异常。是指一些特殊的字符不符合关于选择框的值允许ASP.NET
但是你提供的样品(除了有&应该由放大器为前缀的;)是允许的,可以设置在选项标签值属性中。
希望你的理解是建立。
不,它可以是CDATA。您可能会将它解析为服务器上的字符串,浮点等,但它不在HTML文档中。 – Quentin 2011-02-04 17:44:07
正确,CDATA在HTML中,但可以用各种方式解析。语义问题,我想。感谢您的澄清。 – Craig 2011-02-04 18:15:27