清除文本的Jquery.focus()将保留textarea中的默认文本

清除文本的Jquery.focus()将保留textarea中的默认文本,jquery,Jquery,因此,我在文本区域上有一个.live()单击事件,允许用户留下评论。 我也有这个Jquery函数来清除默认文本“留下评论…”并解除事件绑定,就像用户再次单击文本区域时,他们的评论不会被删除一样 下面是函数 $('#comment-textarea').live('click', function(e) { $(this).text(''); $(this).unbind(e); }); 但是,当用户提交该命令时,默认文本将被提交,即使该文本已清除,并且用户输入了

因此,我在文本区域上有一个.live()单击事件,允许用户留下评论。 我也有这个Jquery函数来清除默认文本“留下评论…”并解除事件绑定,就像用户再次单击文本区域时,他们的评论不会被删除一样

下面是函数

$('#comment-textarea').live('click', function(e) {
        $(this).text('');
        $(this).unbind(e);
});
但是,当用户提交该命令时,默认文本将被提交,即使该文本已清除,并且用户输入了自己的文本。我认为这是导致这一点的未绑定事件,但我也这样写

$('#comment-textarea').live('click', function(e) {
        if($(this).text() == 'Leave a comment') {
            $(this).text('');
        }                            
});
但它仍然提交了最初的文本。以前有人碰到过这个吗

***编辑


所以100%确定jquery事件没有绑定到屏幕视图之外的元素。如果在div中向下滚动,则div底部下方和视图之外的任何内容都不会起任何作用。

因为您应该使用
val()
,而不是
text()
是一个HTML表单控件,对于表单控件,可以使用
val()
函数获取它们的当前值,或者使用
val(x)
函数设置它们的当前值

$('#comment-textarea').live('click', function(e) {
        $(this).val('');
        $(this).unbind(e);
});

因为您应该使用
val()
,而不是
text()
是一个HTML表单控件,对于表单控件,可以使用
val()
函数获取它们的当前值,或者使用
val(x)
函数设置它们的当前值

$('#comment-textarea').live('click', function(e) {
        $(this).val('');
        $(this).unbind(e);
});

替换所有的
$(this).text(“”)
$(this).val(“”)

替换所有的
$(此).text(“”)
$(this).val(“”)

使用
.val
而不是
.text
。另外,
.one
是触发一次事件的更好解决方案:

$('#comment-textarea').one('focus', function(e) {
    $(this).val('');
});
另外,看看HTML5中的
占位符
属性(它在没有JS的现代浏览器中实现了相同的功能):


使用
.val
而不是
.text
。另外,
.one
是触发一次事件的更好解决方案:

$('#comment-textarea').one('focus', function(e) {
    $(this).val('');
});
另外,看看HTML5中的
占位符
属性(它在没有JS的现代浏览器中实现了相同的功能):

我会使用plus和来支持旧浏览器,并编写更多的语义代码

<textarea placeholder="Leave a comment..."></textarea>

就这样

我会使用plus和来支持旧浏览器,并编写更多的语义代码

<textarea placeholder="Leave a comment..."></textarea>


就这样

我已经试过了,但是我注意到现在我再看一遍,它只适用于第一个注释框,其余的保留默认文本。我将尝试Alex建议的方法,看看是否有帮助再次失败,注释将加载到带有滚动条的div中。看起来只有视图中的注释框接受注释。当我滚动时,它不起作用。我已经试过了,但是我注意到现在我再次查看它,它只对第一个注释框起作用,然后其余的保留默认文本。我将尝试Alex建议的方法,看看是否有帮助再次失败,注释将加载到带有滚动条的div中。看起来只有视图中的注释框接受注释。当我滚动时,它不会。