提升網頁表單驗證:從簡單檢查到全面優化
表單使用 Vue 元件,this.business.editdata 是元件的資料物件。這篇記錄從踩到 iOS Safari 日期限制的坑,到把整個 validateForm 重構的過程。 初始問題:日期驗證邏輯一開始表單只是單純使用 HTML date 的 max 跟 min 屬性來限制,結果使用者通報在蘋果手機的瀏覽器無法正常運作。iOS Safari 對 min/max 的支援不完整——選擇器本身不會將無效日期標灰,使用者可以選到範圍外的日期,且 Safari 不一定會在送出時執行 constraint validation 擋下來,相當於限制形同虛設。因此補上了 JavaScript 日期驗證: 整理以下驗證需求: 計算最小允許的開始日期(現在日期加7天)。 檢查使用者輸入的開始日期是否符合要求。 如果日期無效,自動將其修正為最早允許的日期。 程式碼如下: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546const today = new Date()...




