我正在设置input
text
的placeholder
s,它们在IE9+
中正常工作。
<textarea style="some-style" name="some-name" id="some-id" class="some-class"
placeholder="awesome placeholder"></textarea>
以上内容不起作用。我也试过使用一个插件,但它并没有改变任何东西。还试图搜索旧问题,但没有找到任何
编辑
我注意到一个奇怪的行为:启动时textarea
的内容是placeholder
的text
,因此不为空,如果我删除它,则textarea
为空,placeholder
正常工作
您可以在title属性中为占位符设置文本,并将此函数与jQuery库一起使用
$('textarea').focus(function() {
if(this.title==this.value) {
this.value = '';
}
}).blur(function(){
if(this.value=='') {
this.value = this.title;
}
});
确保文本区域内没有任何内容。打开和关闭标记之间没有间隙。此外,我认为占位符属性在IE9中不起作用,但在IE10中应该起作用。
<textarea style="some-style" name="some-name" id="some-id" class="some-class" placeholder="awesome placeholder"></textarea>
这是我在IE 中使用的
var eMail = $('input').val();
$('input').click(function () {
$(this).val('');
});
$('input').focusout(function () {
if ($('input').val() != '') {
//..
} else {
$(this).val(eMail);
}
});
您也可以将其与文本区域一起使用
好吧,我会继续发布我的答案,尽管这个bug已经很旧了,因为其他bug都不适合我,而且这个bug仍然非常持久。
$('textarea').each(function() {
// Check to see if the placeholder value equals the actual value
if ($(this).attr('placeholder') == $(this).val()) {
// If so, empty the actual value
$(this).val("");
}
});
基本上,它会检查是否有任何textarea元素的值等于其占位符,如果是,则清空该值。一个安全的假设是,在页面呈现中,任何文本区域元素的值都不应该等于其占位符,所以我认为这是一个可靠的解决方案。