跳至內容
Astera Technology

欄位在表單外,也可以屬於同一份表單

input 沒放在 form 標記內,也可用 form 屬性連上同一份表單;畫面位置與所屬關係要分清。

兩個 input 屬同一 form,只有其中一個放在 form 標記內。

下載完整個案資料及參考答案 ↓

先看這個例子

「標題」欄放在 form workshop 內;「筆記」欄在外,卻用 form="workshop" 連回同一份表單。兩個都是本地原生控制項,沒有提交按鈕、提交程式或網絡動作。

輸入與瀏覽器原生結果
情況輸入或查看方法結果與意思
內層標題查看 title.form.idworkshop
外面的筆記查看 extra.form.id靠明確 form 屬性,仍是 workshop
表單控制項查看 workshop.elements兩個 input,按文件次序為 title、extra
下載可編輯 CSV ↓

瀏覽器怎樣處理

可關聯表單的 input,可用 form 屬性按同文件的 id 指定 form 元素,毋須一定放在其標記內。input 的 name 用來識別日後表單資料項,form 則指定所屬。兩者都不會令本例自行提交或儲存。

畫面放得近,不等於同屬一份表單

反例把外面的筆記緊接 form 放置,卻沒有 form 屬性;因此它在這份原始碼內沒有 form 所屬。

反例原始碼,請另開例子核對
<form id="workshop"><label>標題 <input id="title" name="title" value="HTML 結構"></label></form><label>筆記 <input id="extra" name="note" value="本地示範"></label>

extra.form 為 null,workshop.elements 只有一個 input。正例明確連好後才包括兩個。

試着修正

把 form 的 id 改成 lesson-form,外面筆記欄的哪項屬性也要改?

查看參考答案

外面 input 的 form 屬性也改成 lesson-form。name="note" 可以照留;欄位名稱不是用來指定 form 所屬。

  • input.form、form.elements 和真正 DOM 父元素分開查。
  • 例子保持無程式,核對沒有提交或網絡請求。

原始例子檔案

相關資源