jquery textarea值焦点

时间:2011-04-19 04:31:49

标签: javascript jquery textarea

这可能是我的愚蠢,但我在哪里错了?

$(function() {

    $('textarea#comment').each(function() {

        var $txt = $(this).val();

        $(this).bind('focus', function() {

            if($(this).val($txt)) {
                $(this).val('');
            }

        });
    });

});

基本上在焦点上我想检查值是否为默认值,在这种情况下“输入您的评论”,然后如果它将值更改为空。

任何人都知道如何做到这一点?我猜它相对简单。目前代码所做的是删除任何值。

3 个答案:

答案 0 :(得分:1)

好的,首先你应该只有一个id为comment的标签,因为id应该是唯一的,但是如果我们使用你的代码,你必须首先设置一个默认值:

<textarea id="comment">Enter text here</textarea>

现在javascript:

    (function() {

    $('textarea#comment').each(function() {

        var $txt = $(this).val();
        //alert($txt);
        $(this).bind('focus', function() {

            if($(this).val() === this.defaultValue) {
                $(this).val('');
            }

        });
    });

})();

此处已更正自执行函数语法,应如下所示:

(function () { // my code here })();

并使用默认值:

this.defaulValue; // works for input boxes as well

希望它有所帮助。干杯

答案 1 :(得分:0)

jquery_example插件可以完全满足您的需求。您可以查看其源代码并获得一些灵感。或者,您可以将默认值作为元数据存储在标记上,并在textarea标记的change事件中对其进行检查。

答案 2 :(得分:0)

$('#comment').live('click change focus', function() {
        var $txt = $(this).val();
        if($txt == 'Enter your comment' );
         $(this).val('');
});

DEMO