我想知道选择选项值的好习惯。
实施例
<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
答案 0 :(得分:20)
可以在option元素的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
规范不对option元素的value属性施加额外限制。
答案 1 :(得分:1)
与文本类型输入相同 - 它可以是字符串,浮点数等。这是处理表单数据时解析最可靠的问题。
答案 2 :(得分:1)
发布的值将是与选择对应的值。
在这方面,它的处理方式与输入类型文本相同。
答案 3 :(得分:1)
是的,它是一个字符串类型,可以有任何值。当您提交表单时,该值就会出现,并且存在限制。
这些限制取决于您在服务器端使用的技术。
与ASP.Net一样,当您尝试发布&amp; 等特殊字符或特别是&lt;脚本&gt;一些脚本&lt; / script&gt; 或类似的字符,它们是html标记的一部分,或者可能是危险的脚本。 asp.net检查发布的数据并抛出异常。表示对于asp.net
,选择框的值不允许使用某些特殊字符但是,您提供的样本(除了&amp; 之外应该以 amp; 为前缀)是允许的,并且可以在选项标记值属性中设置。
希望你的理解能够建立。