我有“contenteditable”div元素。我想为它设置水印,以便当用户尝试在div中写入某些内容时,水印应该消失。Watermark for contenteditable div元素
我尝试了一些水印jQuery插件,所有的工作输入,textarea。为contenteditable div实现此功能的方式是什么?
我有“contenteditable”div元素。我想为它设置水印,以便当用户尝试在div中写入某些内容时,水印应该消失。Watermark for contenteditable div元素
我尝试了一些水印jQuery插件,所有的工作输入,textarea。为contenteditable div实现此功能的方式是什么?
如果通过“水印”的意思是像一个占位符的效果,这个概念应该是相当简单:
var mark = 'Watermark',
edited = false;
$('[contenteditable]').focus(function() {
if(!edited) {
$(this).empty();
}
}).blur(function() {
if(!$(this).html()) {
$(this).html(mark);
}
}).keyup(function() {
edited = true;
}).text(mark);
这里是我的回答另一个问题:
它采用了jQuery和CSS3的结合。 与html5占位符属性完全相同!。
HTML:
<div class="placeholder" contenteditable="true"></div>
CSS3:
.placeholder:after {
content: "Your placeholder"; /* this is where you assign the place holder */
position: absolute;
top: 10px;
color: #a9a9a9;
}
的jQuery:
$('.placeholder').on('input', function(){
if ($(this).text().length > 0) {
$(this).removeClass('placeholder');
} else {
$(this).addClass('placeholder');
}
});
很爽。但是有一个问题,如果一个用户使用“mark”编写相同的文本,那么这是一个问题。 – Abhishek 2012-03-03 22:00:11
您可以添加一个键盘标志,请参阅我的编辑。这只是概念上的,您可能需要进一步测试以确保您的应用程序安全。 – David 2012-03-03 22:15:32
我的DIV元素是自动对焦的。改变你的密码位 '$('[contenteditable]')。bind(“focus keydown”,function(){ ... //同您的代码 ' – Abhishek 2012-03-03 22:28:10