gpt4 book ai didi

forms - 是否有使用 3 个选择框来选择 'Date of Birth' 的语义方式?

转载 作者:行者123 更新时间:2023-12-02 00:29:35 26 4
gpt4 key购买 nike

我目前正在构建一个网络表单,我需要用户输入他们的 DOB。

我目前使用了 3 个选择框。一为日,一为月,一为年。

我将它们包裹在“出生日期”标签中,并使用 CSS 对其进行了样式设置。

一切看起来都不错,但是当我去验证时,我收到以下错误:

"label 元素最多可以包含一个 input、button、select、textarea 或 keygen 后代"

很高兴听到是否有更好的方法或任何语义替代方法?

提前致谢:o)

ps - 我也必须在标签中包含一个 br,这是为了让选择框清除标签文本。我已经将选择框包裹在我的标签标签中以用于定位,因为我的表单由两列布局组成。 br 所在的位置似乎没有验证问题。所以希望没事...

以下是 atm 的样子:

Date of Birth select boxes

这是我的代码自动取款机:

<label id="date_of_birth">Date of Birth:<br />
<select class="first" name="date_of_birth:day" tabindex="7">
<option value="">
<!-- -->
</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="date_of_birth:mon" tabindex="8">
<option value="">
<!-- -->
</option>
<option value="1">Jan</option>
<option value="2">Feb</option>
<option value="3">Mar</option>
<option value="4">Apr</option>
<option value="5">May</option>
<option value="6">Jun</option>
<option value="7">Jul</option>
<option value="8">Aug</option>
<option value="9">Sep</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dec</option>
</select>
<select name="date_of_birth:year" tabindex="9">
<option value="">
<!-- -->
</option>
<option value="1920">1920</option>
<option value="1921">1921</option>
<option value="1922">1922</option>
<option value="1923">1923</option>
<option value="1924">1924</option>
<option value="1925">1925</option>
<option value="1926">1926</option>
<option value="1927">1927</option>
<option value="1928">1928</option>
<option value="1929">1929</option>
<option value="1930">1930</option>
<option value="1931">1931</option>
<option value="1932">1932</option>
<option value="1933">1933</option>
<option value="1934">1934</option>
<option value="1935">1935</option>
<option value="1936">1936</option>
<option value="1937">1937</option>
<option value="1938">1938</option>
<option value="1939">1939</option>
<option value="1940">1940</option>
<option value="1941">1941</option>
<option value="1942">1942</option>
<option value="1943">1943</option>
<option value="1944">1944</option>
<option value="1945">1945</option>
<option value="1946">1946</option>
<option value="1947">1947</option>
<option value="1948">1948</option>
<option value="1949">1949</option>
<option value="1950">1950</option>
<option value="1951">1951</option>
<option value="1952">1952</option>
<option value="1953">1953</option>
<option value="1954">1954</option>
<option value="1955">1955</option>
<option value="1956">1956</option>
<option value="1957">1957</option>
<option value="1958">1958</option>
<option value="1959">1959</option>
<option value="1960">1960</option>
<option value="1961">1961</option>
<option value="1962">1962</option>
<option value="1963">1963</option>
<option value="1964">1964</option>
<option value="1965">1965</option>
<option value="1966">1966</option>
<option value="1967">1967</option>
<option value="1968">1968</option>
<option value="1969">1969</option>
<option value="1970">1970</option>
<option value="1971">1971</option>
<option value="1972">1972</option>
<option value="1973">1973</option>
<option value="1974">1974</option>
<option value="1975">1975</option>
<option value="1976">1976</option>
<option value="1977">1977</option>
<option value="1978">1978</option>
<option value="1979">1979</option>
<option value="1980">1980</option>
<option value="1981">1981</option>
<option value="1982">1982</option>
<option value="1983">1983</option>
<option value="1984">1984</option>
<option value="1985">1985</option>
<option value="1986">1986</option>
<option value="1987">1987</option>
<option value="1988">1988</option>
<option value="1989">1989</option>
<option value="1990">1990</option>
<option value="1991">1991</option>
<option value="1992">1992</option>
<option value="1993">1993</option>
<option value="1994">1994</option>
<option value="1995">1995</option>
<option value="1996">1996</option>
<option value="1997">1997</option>
<option value="1998">1998</option>
<option value="1999">1999</option>
<option value="2000">2000</option>
</select>
</label>

最佳答案

有建议here为可能有助于回答您的问题的辅助技术适当构建 DOB(在您的情况下, <input> 将替换为 <select> :

This is how I'd tend to do it (I'm not saying it's necessarily the best way, mind you): I have visible text for sighted users, and have css-positioned text offscreen for screen reader users where it will be picked up and correctly associated with the appropriate controls.


Birthdate:            
<fieldset id="birthdate">
<label for="birthday_day" class="offset">Birthday Day</label>
<input type="text" name="birthday_day" id="birthday_day" size="2" maxlength="2" value="" />

<label for="birthday_month" class="offset">Birthday Month</label>
<input type="text" name="birthday_month" id="birthday_month" size="2" maxlength="2" value="" />

<label for="birthday_year" class="offset">Birthday Year</label>
<input type="text" name="birthday_year" id="birthday_year" size="4" maxlength="4" value="" />
</fieldset>

...you need a label for each control, otherwise assistive technology will struggle with it - it will just say "edit:" and someone won't necessarily know what they are supposed to put in each field. This method tells the assistive technology without taking up screen real estate.

关于forms - 是否有使用 3 个选择框来选择 'Date of Birth' 的语义方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7574678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com