IE浏览器html5表单失效_让IE表单支持html5招【补全】

11次阅读

IE9及以下不支持html5表单属性和验证API,需用webshim polyfill或手写submit拦截逻辑补全;html5shiv和Modernizr无法解决此问题。

IE浏览器html5表单失效_让IE表单支持html5招【补全】

IE 浏览器(尤其是 IE9 及以下)原生不支持 HTML5 表单属性和验证 API,requiredtype="email"patternnovalidate 等直接被忽略,checkValidity()reportValidity() 也不存在。这不是“失效”,是根本没实现。

IE 不识别 HTML5 表单属性的典型表现

用户提交空的 required 输入框毫无提示;输入非法邮箱却能通过;type="number" 渲染成普通文本框且无上下箭头;调用 form.checkValidity() 报错 Object doesn't support Property or method 'checkValidity'

根本原因:IE9–10 的 dom 实现未扩展表单元素的 HTML5 属性与方法,连 HTMLinputElement.prototype 都没有挂载这些接口

  • IE6–8:完全无 HTML5 表单概念,连 type="email" 都当作 type="text" 处理
  • IE9:支持部分语义化标签(如 article),但表单验证属性全不识别
  • IE10:开始支持 placeholder,但 requiredpattern、验证 API 仍缺失

用 webshim lib 补全 IE 的 HTML5 表单能力

webshim 是目前最成熟、轻量(压缩后约 40KB)、且专注 polyfill 的方案,它不模拟 UI,而是注入真实验证逻辑并绑定到原生事件(如 submitinput),兼容性覆盖 IE7+。

立即学习前端免费学习笔记(深入)”;

使用步骤:

  • 引入 webshim.jswebshim.css(后者仅用于可选的错误提示样式)
  • 中启用表单模块:
  • 确保页面加载完 DOM 后再执行 polyfill(推荐放在

text=ZqhQzanResources