0

我使用 HTML5 属性来显示有关文本框验证的警报消息。它在 chrome 上运行良好,但在 IE8 上运行良好。我也添加了html5shiv.js,但确实没有解决... PFB我的代码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE8.js"></script>
<![endif]-->
<script src="html5shiv.js"></script>


<script>
$(document).ready(function () {
    var element = document.getElementById("name");

        element.oninvalid = function (e) {
            e.target.setCustomValidity("");
            if (!e.target.validity.valid) {
               e.target.setCustomValidity("The field 'From' cannot be left blank");

            }
        };

})
</script>
</head>
<body>
<form>
<label>From:<input name="username" id="name" type="text" placeholder="Eg. Town Hall"  required="true" autofocus="true"/></label>
<input type="submit" value="go" />
</form>
</body>
</html>
4

3 回答 3

0

IE8不完全支持HTML5属性查看更多点击这里

IE8仅支持以下列表

  • 动态标记插入
  • outerHTML 属性
  • insertAdjacentHTML 函数
  • 运行时脚本错误报告
  • 自定义搜索提供程序
  • API
  • 编辑文档
  • 编辑元素
于 2013-10-18T04:57:29.170 回答
0

html5shiv.js允许您在 IE 中设置 html5 标签的样式,但是它不启用 HTML5 中引入的各种属性。您将需要找到placeholder在 IE8 中模拟的各种 JS 解决方案之一。

于 2013-10-18T04:58:15.920 回答
0

HTML5 变得越来越流行,这有一些问题。如果您想支持一些仍在使用的旧浏览器,例如 IE8 和更低版本,那么使用 HTML5 您将会遇到一些麻烦。

Internet Explorer 8 及更低版本

IE8 和更低版本的浏览器的问题在于,它们是在几年前创建的,比任何新的 HTML5 标签还早,因此无法支持它们。微软不会发布这些浏览器的更新,因为他们已经创建了 IE9,所以他们希望人们升级到这个。

如果人们不升级,那么他们就会被不支持这些新 HTML 标签的过时浏览器困住。

浏览器对文章、部分、hav、页眉、页脚的这些新标签一无所知,因此无法支持它们。如果您正在使用这些标签,您很可能会为标签本身设置样式,或者您必须向标签添加一个类,这会带走使用 HTML5 的意义。

由于浏览器不知道这些标签,因此它无法设置它们的样式,因此您会发现在 IE8 或更低版本中,您的网站将没有很多样式。

IE 使用 HTML5 的正确方法

要让 IE 了解这些标签,您需要添加一些 Javascript 来创建元素,这是通过使用以下代码段完成的。

<script>
  document.createElement('header');
  document.createElement('section');
  document.createElement('article');
  document.createElement('aside');
  document.createElement('nav');
  document.createElement('footer');

但这不是一种好的工作方式,因为您必须记住将其包含在您网站的每个页面的顶部,然后如果您想添加一个新的 HTML5 元素,您必须返回每个页面添加它.

您需要的是一个包含将创建这些元素的 Javascript 文件。

Remy Sharp 创建了一个 Javascript 文件,他托管在 google 代码中,它将为您执行此操作。

将以下内容复制到您的页面顶部,如果访问者使用低于 9 版的 IE 浏览器,它将在您的网站上包含此代码文件。

<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</div>

参考链接

于 2013-10-18T05:02:17.287 回答