先看這個例子
多行欄位一開始是「帶同原始檔。」。元素內的原文訂出預設值。把內容改成「已修改筆記。」後,現值會變,原本的預設值仍保留。
| 情況 | 輸入或查看方法 | 結果與意思 |
|---|---|---|
| 初始現值 | 讀取 value | 帶同原始檔。 |
| 原本預設 | 讀取 defaultValue | 帶同原始檔。 |
| 修改後 | 把現值改成「已修改筆記。」 | value=已修改筆記。;defaultValue 仍是帶同原始檔。 |
瀏覽器怎樣處理
textarea 的初始和預設值來自內部文字,不是 value 屬性。使用者改過現值後,這個已修改值與預設原文分開。本例只改本地控制項,不會儲存筆記或同步草稿。
textarea 的 value 屬性不能設定初始文字
反例把元素內容留空,想用 value 屬性提供文字;這不是 textarea 設定初始值的方法。
<label for="notes">工作坊筆記</label><textarea id="notes" rows="3" value="帶同原始檔。"></textarea>反例即使寫了 value 屬性,value 和 defaultValue 都是空字串。
試着修正
欄位現值已是「已修改筆記。」,defaultValue 仍是原指示。這次輸入有改掉原本預設值嗎?
查看參考答案
沒有,只改了現值。若要改預設值,須另行更新,並清楚訂明已經有人改過的欄位應怎樣處理。
- 輸入前後,比較 value 和 defaultValue。
- 可見標籤要繼續對應 textarea 的 id。