2013-07-19 225 views
-4

我嘗試使用placeholder編輯div。但我想在此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

我應該張貼一些代碼工作,你有什麼標記?你想要做什麼? – Mangiucugna

回答

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); 
    } 
}); 
+0

這是不正確的事情不符合我的要求。 –

-1

這不是在問題的措辭很清楚,但它聽起來像你想一個text area

+0

我不想要我知道的文字區域。 –

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/

7

你coud嘗試使用CSS與僞:empty:before和數據屬性。 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> 

應該在幾個瀏覽器

相關問題