
Safari 对 的空值校验异常严格,手动将 v-model 设为空字符串不会重置其内部 ValidityState,导致表单被阻止提交;Chrome 等浏览器则兼容性更好。本文提供两种稳定、可落地的修复方案。
safari 对 `` 的空值校验异常严格,手动将 `v-model` 设为空字符串不会重置其内部 validitystate,导致表单被阻止提交;chrome 等浏览器则兼容性更好。本文提供两种稳定、可落地的修复方案。
在 Vue 项目中使用 时,若通过 v-model 绑定并手动清空(如 createdAt.value = ''),Safari(尤其是 17.2.1 及后续版本)会出现一个隐蔽但关键的问题:表单无法提交——点击“Save”按钮无响应,@submit.prevent 事件甚至不会触发。而相同逻辑在 Chrome、Firefox 或 React 中均正常运行。
根本原因在于:Safari 将空字符串 '' 视为无效日期值,且不会自动重置 元素的 ValidityState.valid 状态(即使 value 已为空)。当表单提交时,Safari 会因该字段 validity.badInput === true 而静默阻止提交,不抛错、不触发事件,极难排查。
✅ 推荐方案一:禁用原生表单验证(简洁可靠)
为
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










