jQuery将文本添加到同一个textarea多次故障

时间:2013-04-05 20:31:51

标签: jquery html textarea append

我构建了此回复系统,人们可以点击reply回复其他评论。当他们点击它时,它会运行此功能,以便将@user放在评论的开头:

$('#inputField').focus();
$('#inputField').text('');
$('#inputField').append(atowner);

atowner是调用函数时传递的变量。

这非常有效,因为您可以继续点击reply到许多不同的评论,它会始终删除并使用新的<textarea>重新填充@newuser

我的问题是,如果我在<textarea>中输入内容,然后将其全部删除,然后点击回复,则无效。但它很有趣,因为实际的HTML仍显示它将@user放入<textarea>,但您无法在网站上看到它。当您继续提交评论时,它会在没有@user的情况下提交。

所以基本上,为什么HTML会对我说谎,为什么只有当我在<textarea>中首先打字并擦除(其余时间有效)时才出现?

3 个答案:

答案 0 :(得分:1)

作为输入(即使认为它是textarea,您应该使用val()而非appendtext,因此您的代码将是:

$('#inputField').focus();
$('#inputField').val(atowner);

这应解决您的问题,您还应该使用val来检索内容。

这在页面加载时和用户执行任何操作之前的时间有效,因为它读取DOM以填充可见的textarea,但在用户开始使用它之后将其视为输入,这就是为什么它不再从DOM里面渲染任何东西。

答案 1 :(得分:1)

你可以这样做:

$('#inputField').focus().val(atowner);

答案 2 :(得分:0)

如果您使用

怎么办?
$('#inputField').val(atowner);