select选项值可以是不同类型吗?

时间:2011-02-04 17:38:19

标签: html

我想知道选择选项值的好习惯。

实施例

<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 texttextarea

相同

4 个答案:

答案 0 :(得分:20)

可以在option元素的value属性中设置的数据类型没有实际限制。当然,HTML中具有特殊含义的字符需要由适当的实体(&表示为&amp;来表示(尽管问题中的一个符合“后跟空格字符”异常)规则))。

该属性定义为包含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; 为前缀)是允许的,并且可以在选项标记值属性中设置。

希望你的理解能够建立。