2011-02-04 75 views
10

我想知道什么是选择选项值的良好做法。选择选项值可以是不同的类型吗?

<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

回答

17

对于可在选项元素的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

规范没有规定该选项元素的值属性的其他限制。

1

同一个文本类型的输入选择值 - 它可以是字符串,浮点数等,这更是一个问题,这是最可靠的,当你处理表单数据进行解析。

+0

不,它可以是CDATA。您可能会将它解析为服务器上的字符串,浮点等,但它不在HTML文档中。 – Quentin 2011-02-04 17:44:07

+0

正确,CDATA在HTML中,但可以用各种方式解析。语义问题,我想。感谢您的澄清。 – Craig 2011-02-04 18:15:27

1

张贴的将是与选择对应的一个。

在这方面,它的处理方式与输入类型文本相同。

1

是的,它是一个字符串类型,可以有任何值。当您提交表单时价值就会提高,并且存在限制。

限制取决于您在服务器端使用哪种技术。

如ASP.Net的情况下,当您尝试发布特殊字符,例如&或特别< SCRIPT>某个脚本</SCRIPT>或类似的字符,这是HTML标签的一部分,或者可能是一个危险的脚本。 asp.net检查发布的数据并抛出异常。是指一些特殊的字符不符合关于选择框的值允许ASP.NET

但是你提供的样品(除了有&应该由放大器为前缀的;)是允许的,可以设置在选项标签值属性中。

希望你的理解是建立。

相关问题