我有一个表单,客户想要输入框中的标签,我决定使用HTML5的占位符和谷歌的html5shiv,而不是旧的javascript。然而,我的占位符在IE中似乎不能正常工作,这就是我使用shiv的原因。代码如下:
Doctype:
<!DOCTYPE html>
Shiv:
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
表格:
<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复制的):
<script type="text/javascript" src="scripts/placeholders.js" charset="utf-8"></script>
DOM就绪事件侦听器:
<body onload="Placeholders.init(true);">
发布于 2012-02-14 21:32:08
HTML5 Shiv只是在IE中为以前未知的元素启用样式。最新的版本做了一些额外的事情,比如修补document.createElement
,但除此之外,它没有多填充任何东西。
如果要模拟placeholder
,请使用占位符polyfill。如果你感兴趣,我已经用jQuery插件格式写了一个:http://mths.be/placeholder
使用方法如下:
$('input, textarea').placeholder();
这是一个演示:http://mathiasbynens.be/demo/placeholder
顺便说一句,如果文本是“你的全名”等,你应该使用<label>
而不是@placeholder
。
发布于 2014-02-18 18:25:19
也可以查看Todd的jquery.watermark NuGet包。
//polyfill placeholder in older browsers
var inputs = $('input, textarea');
$.each(inputs, function (i, itm) {
var input = $(itm);
input.watermark(input.attr('placeholder'));
});
我已经比较了两种提供的方法,水印似乎更好地处理密码输入,但它并不是很容易设置水印。
https://stackoverflow.com/questions/9277143
复制相似问题