占位符在NicEdit中不起作用

时间:2014-09-12 15:05:47

标签: javascript textarea nicedit

我正在使用NicEdit Inline WYSIWYG并尝试了解如何使用它来占位符。

我创建了一个带有属性占位符的div,但是当NicEdit激活它时,显示没有占位符的空白textarea。

也许有一些方法可以让它发挥作用。据我所知,它直接将文本写入div。

在代码中看起来像。 (我评论显示非textarea) http://i.imgur.com/D384B5C.png

1 个答案:

答案 0 :(得分:0)

您可以使用nicEditor事件手动添加/删除占位符 focus当编辑获得焦点时发送(IE有人在其中点击) blur在编辑器实例失去焦点时发送。

var editor = new nicEditor();
var $placeholder = '<p>Click here to add content...</p>';

$('[id^="textArea"]').each(function() {
    var textAreaId =  $(this).attr("id");

    editor.addInstance( textAreaId );
    var editorInstance = editor.instanceById(textAreaId)

    // Add the initial Placeholder
    var content = editorInstance.getContent();
    if(content == "" || content == "<br>"){
        editor.instanceById(textAreaId).setContent($placeholder);
    }

    // onFocus - Remove the placeholder
    editor.addEvent('focus', function() 
    {
        if (editorInstance.getContent() == $placeholder){
            editor.instanceById(textAreaId).setContent("<br>");
        }
    });

    // onBlur - Re-add the placeholder
    editor.addEvent('blur', function() 
    {
        var newText = editorInstance.getContent();
        if(newText == "" || newText == "<br>") {
            editor.instanceById(textAreaId).setContent($placeholder);
        }
    });
});

最初,检查是否没有内容或是否有一个<br>(这是nicEditor的占位符)。如果是这样,请用占位符替换 然后重点检查占位符并将内容更改回"<br>" 然后在模糊检查中检查内容是否仍为空并再次用占位符替换它