2011-02-04 76 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

但是你提供的樣品(除了有&應該由放大器爲前綴的;)是允許的,可以設置在選項標籤值屬性中。

希望你的理解是建立。

相關問題