首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >谷歌的html5 shiv不渲染占位符?

谷歌的html5 shiv不渲染占位符?
EN

Stack Overflow用户
提问于 2012-02-14 20:48:43
回答 2查看 8.8K关注 0票数 4

我有一个表单,客户想要输入框中的标签,我决定使用HTML5的占位符和谷歌的html5shiv,而不是旧的javascript。然而,我的占位符在IE中似乎不能正常工作,这就是我使用shiv的原因。代码如下:

Doctype:

代码语言:javascript
运行
复制
<!DOCTYPE html>

Shiv:

代码语言:javascript
运行
复制
<!--[if IE]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->

表格:

代码语言:javascript
运行
复制
<form method="post" enctype="multipart/form-data" name="contactForm" id="contactForm">

    <input type="text" name="name" id="name" placeholder="Your Full Name..." />
    <input type="text" name="telephone" id="telephone" placeholder="Your Telephone Number..." />
    <input type="email" name="email" id="email" placeholder="Your Email Address..." />
    <textarea name="enquiry" id="enquiry" placeholder="Your Enquiry or Comments..."></textarea>
    <p class="midpadLeft green_Button_margin_2"><span class="green_Button_2"><a href="javascript: document.contactForm.submit();" target="_self" class="green_Button_2">Submit Enquiry <img src="images/mid-envelope.png" alt="Submit"/></a></span></p>

</form>

有没有关于它为什么不工作的想法?

修订:

使用下面注释中建议的代码,我已经将代码更改为以下代码,但它仍然不起作用。

脚本包括(该脚本的内容是直接从here复制的):

代码语言:javascript
运行
复制
<script type="text/javascript" src="scripts/placeholders.js" charset="utf-8"></script>

DOM就绪事件侦听器:

代码语言:javascript
运行
复制
<body onload="Placeholders.init(true);">
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-14 21:32:08

HTML5 Shiv只是在IE中为以前未知的元素启用样式。最新的版本做了一些额外的事情,比如修补document.createElement,但除此之外,它没有多填充任何东西。

如果要模拟placeholder,请使用占位符polyfill。如果你感兴趣,我已经用jQuery插件格式写了一个:http://mths.be/placeholder

使用方法如下:

代码语言:javascript
运行
复制
$('input, textarea').placeholder();

这是一个演示:http://mathiasbynens.be/demo/placeholder

顺便说一句,如果文本是“你的全名”等,你应该使用<label>而不是@placeholder

票数 22
EN

Stack Overflow用户

发布于 2014-02-18 18:25:19

也可以查看Todd的jquery.watermark NuGet包。

代码语言:javascript
运行
复制
//polyfill placeholder in older browsers
var inputs = $('input, textarea');

$.each(inputs, function (i, itm) {
    var input = $(itm);
    input.watermark(input.attr('placeholder'));
});

我已经比较了两种提供的方法,水印似乎更好地处理密码输入,但它并不是很容易设置水印。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9277143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档