我尝试使用占位符制作可编辑的div。但我想在此div中没有文本而不是自动占位符集。
实际上我正在使用contentEditable='true';
这个元素在div上。我使用jQuery处理这个函数的占位符。
`
$('div').on('activate',
function() {
$(this).empty();
var range, sel;
if ( (sel = document.selection) && document.body.createTextRange){
range = document.body.createTextRange();
range.moveToElementText(this);
range.select();} });
$('div').focus(function() {
if (this.hasChildNodes() && document.createRange && window.getSelection) {
$(this).empty();
var range, sel;
range = document.createRange();
range.selectNodeContents(this);
sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
}});
`
答案 0 :(得分:9)
你可以尝试使用带有伪:empty
和:before
的CSS以及数据属性。
http://codepen.io/gcyrillus/pen/hzLIE
div:empty:before {
content:attr(data-placeholder);
color:gray
}
<div contenteditable="true" data-placeholder="You can insert & edit content here."></div>
它应该可以在几个浏览器中使用
答案 1 :(得分:1)
你可以这样做:
<div contenteditable="true" id="editDiv">Placeholer</div>
的jQuery
var placeholder = "Placeholder"; //Change this to your placeholder text
$("#editDiv").focus(function() {
if ($(this).text() == placeholder) {
$(this).text("");
}
}).focusout(function() {
if (!$(this).text().length) {
$(this).text(placeholder);
}
});
答案 2 :(得分:0)
您的问题非常模糊,但我会尽力为您提供某种可用的解决方案:
HTML:
<div id="editableDiv">
<textarea id="editText" placeholder="This is my placeholder"></textarea>
</div>
CSS:
#editableDiv {
width: 400px;
height: 200px;
}
#editText {
width: 100%;
height: 100%;
}
很抱歉,如果它不是您正在寻找的东西,但这是我能够处理的最佳信息量。
答案 3 :(得分:-1)
问题的措辞不是很清楚,但听起来你想要text area。