Web前端技术 · 第4课8 / 21 | 编码:L04-10
使用HTML创建表单

下拉选项与多行文本

select组织下拉选项,option提供每一项,textarea接收多行文本。

<label for="level">了解程度</label>
<select id="level" name="level" required>
  <option value="">请选择</option>
  <option value="new">第一次接触</option>
  <option value="some">曾经了解</option>
</select>
<label for="note">备注(选填)</label>
<textarea id="note" name="note" rows="3"
          maxlength="100">希望了解经典唱段</textarea>

思考

把第一项的 value="" 改成 value="choose",或者删除整个 value 属性,停留在“请选择”时还能被 required 拦住吗?textarea 的默认内容应放在哪里?

展开参考分析

关键在于:空字符串 value="" 与没有 value 属性,不是一回事。本例第一项直接位于 select 下,且下拉框为普通单选形式:

第一项的写法选中时的值required 检查
<option value="">请选择</option>空字符串不通过:仍停留在空值占位项。
<option value="choose">请选择</option>choose通过:值非空,但并不代表作出了有效选择。
<option>请选择</option>文字“请选择”通过:省略 value 时,选项文字成为值。

“请选择”应放在第一项,直接写在 select 内,并设置 value=""。不要把省略 value 当作设置空值,也不要把其他位置的空值选项直接当作占位项。

textarea 的默认文字写在起止标签之间,而不是 value 属性中;本例默认显示“希望了解经典唱段”。