使用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 属性中;本例默认显示“希望了解经典唱段”。