我构建了此回复系统,人们可以点击reply
回复其他评论。当他们点击它时,它会运行此功能,以便将@user
放在评论的开头:
$('#inputField').focus();
$('#inputField').text('');
$('#inputField').append(atowner);
atowner
是调用函数时传递的变量。
这非常有效,因为您可以继续点击reply
到许多不同的评论,它会始终删除并使用新的<textarea>
重新填充@newuser
。
我的问题是,如果我在<textarea>
中输入内容,然后将其全部删除,然后点击回复,则无效。但它很有趣,因为实际的HTML仍显示它将@user
放入<textarea>
,但您无法在网站上看到它。当您继续提交评论时,它会在没有@user
的情况下提交。
所以基本上,为什么HTML会对我说谎,为什么只有当我在<textarea>
中首先打字并擦除(其余时间有效)时才出现?
答案 0 :(得分:1)
作为输入(即使认为它是textarea
,您应该使用val()
而非append
或text
,因此您的代码将是:
$('#inputField').focus();
$('#inputField').val(atowner);
这应解决您的问题,您还应该使用val
来检索内容。
这在页面加载时和用户执行任何操作之前的时间有效,因为它读取DOM以填充可见的textarea
,但在用户开始使用它之后将其视为输入,这就是为什么它不再从DOM里面渲染任何东西。
答案 1 :(得分:1)
你可以这样做:
$('#inputField').focus().val(atowner);
答案 2 :(得分:0)
如果您使用
怎么办?$('#inputField').val(atowner);