textarea.val()设置和获取

时间:2010-11-19 21:52:47

标签: javascript jquery html

最初,我的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()函数也是如此。我只想展示正在发生的事情的核心

3 个答案:

答案 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