这可能是我的愚蠢,但我在哪里错了?
$(function() {
$('textarea#comment').each(function() {
var $txt = $(this).val();
$(this).bind('focus', function() {
if($(this).val($txt)) {
$(this).val('');
}
});
});
});
基本上在焦点上我想检查值是否为默认值,在这种情况下“输入您的评论”,然后如果它将值更改为空。
任何人都知道如何做到这一点?我猜它相对简单。目前代码所做的是删除任何值。
答案 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('');
});