大家好,我的文本区域的自定义占位符有问题,这是我的代码
http://goo.gl/rIqtns jsfiddle 链接
场景是我有一个内容 div 包含 textarea 和 div 占位符 我想要的是如果 textarea 为 null 并且焦点占位符可见但如果 textarea 不为 null 并且焦点占位符将不可见并且 textarea 是焦点...我需要将运行到 ie8 的纯 javascript 函数或 css 样式。
大家好,我的文本区域的自定义占位符有问题,这是我的代码
http://goo.gl/rIqtns jsfiddle 链接
场景是我有一个内容 div 包含 textarea 和 div 占位符 我想要的是如果 textarea 为 null 并且焦点占位符可见但如果 textarea 不为 null 并且焦点占位符将不可见并且 textarea 是焦点...我需要将运行到 ie8 的纯 javascript 函数或 css 样式。
适用于所有浏览器的 jQuery 修复:
HTML:
<input type="text" placeholder="Fill me …">
Javascript:
$('[placeholder]').focus(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
input.removeClass('placeholder');
}
}).blur(function() {
var input = $(this);
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.addClass('placeholder');
input.val(input.attr('placeholder'));
}
}).blur();
您可以尝试@JamieRead 解决方案。但是对于较旧的浏览器,这是解决方案,PS。这适用于新旧浏览器:
将此添加到您的头部:
<script>
function unsetPlaceholder(textarea){
if (textarea.value=='placeholdertext'){textarea.value='';};return false;
}
function setPlaceholder(textarea){
if (textarea.value==''){textarea.value='placeholdertext';return false;}
}
</script>
这对你的主体:
<textarea onfocus="unsetPlaceholder(this)" onblur="setPlaceholder(this)">placeholdertext</textarea>
是的,用你的占位符替换所有出现的“placeholdertext”。
您可以使用 HTML5 占位符属性placeholder="text"
。
HTML:
<textarea placeholder="text"></textarea>
提琴手。
您可以按照@asavchenko 的建议使用placeholder.js 库。
结合使用建议的 HTML5 占位符属性,我还建议使用https://github.com/mathiasbynens/jquery-placeholder作为之前建议的https://github.com/NV/placeholder.js/的polyfill不再维护。
您可以使用 placeholder.js 库:https ://github.com/NV/placeholder.js/ 适用于 IE>6
更新:纯 HTML 属性占位符是 HTML5 属性,在旧浏览器中不起作用...