如果可编辑div没有文本而不是设置占位符

时间:2013-07-19 19:15:17

标签: jquery html css

我尝试使用占位符制作可编辑的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);
}});

`

4 个答案:

答案 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%;
}

很抱歉,如果它不是您正在寻找的东西,但这是我能够处理的最佳信息量。

http://jsfiddle.net/LB7cp/

答案 3 :(得分:-1)

问题的措辞不是很清楚,但听起来你想要text area