最初,我的textarea的值为Enter Comment ...通过<textarea>Enter Comment...</textarea>
我有一个.focus喜欢:
$("textarea.commentTextArea").live('focus', function() {
if($(this).val() == "Enter Comment...") {
$(this).val('');
}
});
和.blur()之类的:
$("textarea.commentTextArea").live('blur', function() {
if($(this).val() == "Enter Comment..." || $(this).val() == "") {
$(this).text("Enter Comment...");
$(this).parent().addClass("hide");
$(this).parent().hide();
}
});
然而,在我在.blur()函数中设置val并尝试使用.val()检索值之后,它总是返回'Enter Comment ...'而不是用户输入的文本。我在这里不知所措。
感谢您的帮助!
编辑 - 我对“textarea”有一个更深入的选择器,这不是问题。如果选择器返回null,它将不会返回“输入注释”。谢谢你的尝试。 我的.focus()函数也是如此。我只想展示正在发生的事情的核心
答案 0 :(得分:2)
在第二个声明中,“textarea”这个词没有引号。此外,如果用户返回到textarea再次编辑,您的焦点事件将删除用户输入的任何内容。
这样做可以解决第二个问题(你在模糊事件中使用的相同技巧):
$("textarea").focus(function() { if ($(this).val() == 'Enter Comment...') $(this).val(''); });
答案 1 :(得分:0)
我的第一个猜测是$(textarea)
返回null - 我猜它应该是$("textarea")
。我觉得这很好。我使用jsfiddle进行了尝试,但它确实有效。
答案 2 :(得分:0)
我认为这是因为你错过了$(textarea).blur()
方法的引号。
我创建了一个有效的example with your code。