如果未选择textarea,如何进行占位符显示?

时间:2014-12-01 19:41:04

标签: javascript jquery html5 placeholder

现在,当我点击textarea输入文字时,我有一个占位符出现在我的textarea的背景中。

但是,即使我没有点击textarea内部,我也希望占位符显示。我只想在加载textarea时出现文本?

这是占位符的主要代码:

if (selectItem != null) {
            var notesContent = selectItem.description;
            var textarea;
            var browser = BrowserSide.BrowserCompatibility.GetBrowser();

            if (browser == "Explorer") {
                textarea = '<div class="light-list-box" style="padding:10px;width: 100%; height: 100%; border:none "><textarea id="notes-content" class="image-textarea" style="resize: none; width:85%; height:195px; overflow:auto" cols="5" rows="10" name="Note">{0}</textarea></div>';
            } else {
                var placeHolder = BrowserSide.GlobalObjects.getString("TextareaPlaceHolder");
                textarea = '<div class="light-list-box" style="padding:10px;width: 100%; height: 100%; "><textarea placeholder="' + placeHolder + '" id="notes-content" class="image-textarea" style="resize: none; width:85%; height:195px; overflow:auto" cols="5" rows="10" name="Note">{0}</textarea></div>';
            }

            if (notesContent != null && notesContent != '') {
                $('#notes-content').css('padding', '6px');
                textarea = BrowserSide.GlobalObjects.stringFormat(textarea, notesContent);
            }
            else { 
                 textarea = BrowserSide.GlobalObjects.stringFormat(textarea, '');
            }
            updateSelector();

            notes.html('');
            notes.append(textarea);
            notes.show();
        }
    };

如果未在内部选择/点击文本区域,如何进行占位符显示?

3 个答案:

答案 0 :(得分:1)

一个jquery解决方案: 您可以使用.focus().blur()个事件来处理您的textarea内容:
所以,当你集中注意力时,你不需要显示任何东西:

$('textarea').focus(function () {$(this).empty()});

当你不关注它时:

$('textarea').blur(function () {$(this).html('your placeholder...').css('color','gray');});

您还可以检查用户是否输入了任何内容:

$('textarea').blur(function () {
     if ($(this).text().length == 0) 
         $(this).html('your placeholder...').css('color','gray');
});

注意:记得在加载文档时设置占位符。编写一个全球使用的函数是很好的:http://jsfiddle.net/vesc1zLy/6/

答案 1 :(得分:1)

简单的解决方案:DEMO at JSBin

    <textarea type="text" placeholder="enter your text" 
              onfocus="this.placeholder = ''" 
              onblur="this.placeholder = 'enter your text'">
    </textarea>

答案 2 :(得分:0)

您可以使用定位的:after伪元素:

.light-list-box {
    position:relative;
}

.light-list-box:after {
     position:absolute;
     top:0;
     left:0;
     content: 'your placeholder text'
}