HTML5 词条目录
前端Wiki/HTML5/基础/增强表单

datalist 与 output

<datalist> 给输入框提供"建议列表":input 通过 list 属性指向 datalist 的 id,用户输入时出现候选下拉。它与 select 的关键区别——select 只能选,datalist 既能自由输入又能从建议里挑,适合"城市名""常用邮箱后缀"这类开放输入场景。选项仍用 option 描述。

<output> 表示"计算或用户操作的结果",配合 for 属性声明结果来自哪些控件。经典组合是滑块 + output 实时显示数值:input 事件里把 range 的值写进 output。它语义上优于 span——读屏器和爬虫知道这是"输入的结果"。

两者都是"增强型"标签:不支持的浏览器里 datalist 就是普通输入框、output 就是普通文本,零风险。

本节要点datalist = 可输入 + 候选建议(区别于 select 只能选);output 表计算结果,for 指向来源控件;两者都有天然的降级行为,可放心用。
HTML
<form oninput="total.value = Number(price.value) * Number(qty.value)">
  <!-- datalist:自由输入 + 候选建议 -->
  <input type="text" name="city" list="cities" placeholder="输入城市">
  <datalist id="cities">
    <option value="北京">
    <option value="上海">
    <option value="广州">
    <option value="杭州">
  </datalist>

  <!-- output:滑块联动,实时显示计算结果 -->
  <input type="range" id="price" min="1" max="100" value="10">
  <input type="number" id="qty" value="2">
  总价:<output name="total" for="price qty">20</output>
</form>