Javascript 在不使用jquery的情况下将文本添加到blur上的textarea值

Javascript 在不使用jquery的情况下将文本添加到blur上的textarea值,javascript,php,html,Javascript,Php,Html,所以,我有一个记录评论的文本区。我试图在输入时将输入注释的用户的身份附加到注释的末尾 以下是检查用户会话并获取用户名称的PHP: <?php //getting username - displays John Doe $user = Mage::getSingleton('admin/session'); $firstname = $user->getUser()->getFirstname(); $lastname = $user->

所以,我有一个记录评论的文本区。我试图在输入时将输入注释的用户的身份附加到注释的末尾

以下是检查用户会话并获取用户名称的PHP:

<?php 
    //getting username - displays John Doe
    $user = Mage::getSingleton('admin/session');
    $firstname = $user->getUser()->getFirstname();
    $lastname = $user->getUser()->getLastname();
    $append = " [name](by ".$firstname." ".$lastname.")[/name]";
?>
我使用的CMS与Prototype一起工作,因此jQuery并不总是工作(似乎它是有选择地被调用的),即使在noConflict模式下也是如此

我尝试过的事情:

Putting the JS below the textarea.
onblur vs onBlur
jQuery solution

这是因为您正在添加一个不需要的“
#
”符号
document.getElementById()
只需要元素id的名称(
history\u comment
)。错误基本上是告诉您,它无法获取不存在的东西的属性“
value
”,即id为“
#history\u comment
”的元素。


您不需要jQuery解决方案,除了输入错误之外,这里的内容很好。

这是因为您正在添加一个不需要的“
”象征
document.getElementById()
只需要元素id的名称(
history\u comment
)。错误基本上是告诉您它无法获取不存在的东西的属性“
value
”,即id为“
#history\u comment
”的元素

您不需要jQuery解决方案,除了输入错误之外,这里的内容很好

Uncaught TypeError: Cannot read property 'value' of null
这是因为没有ID为“#history_comment”的元素。只有一个ID为“history\u comment”的

此外,更改textarea的值可以通过更改其.innerHTML而不是.value来实现。 从文本区域读取值的方法相同

为什么要通过Javascript执行此操作? 在文章通过PHP提交之后这样做不是更好吗? 你现在的做法是,如果我将文本区域“模糊”几次,你添加的文本就会被添加几次

这是因为没有ID为“#history_comment”的元素。只有一个ID为“history\u comment”的

此外,更改textarea的值可以通过更改其.innerHTML而不是.value来实现。 从文本区域读取值的方法相同

为什么要通过Javascript执行此操作? 在文章通过PHP提交之后这样做不是更好吗?
按照您现在的操作方式,如果我将文本区域“模糊”几次,您添加的文本将被添加几次。

继续上面的答案

原生JavaScript api document.getElementById只接受id,因为Jquery需要诸如“#”和“.”之类的快捷方式符号。在内部,它将使用与document.getElementById相同的原生api


由于文本区域是一个输入元素,它将具有value属性,而对于其他文档元素(如div),span table将具有innerHTML属性。即使是输入元素也会有innerHTML属性,但只会返回空。

继续上面的答案

原生JavaScript api document.getElementById只接受id,因为Jquery需要诸如“#”和“.”之类的快捷方式符号。在内部,它将使用与document.getElementById相同的原生api


由于文本区域是一个输入元素,它将具有value属性,而对于其他文档元素(如div),span table将具有innerHTML属性。即使是输入元素也会有innerHTML属性,但只会返回空。

快速浏览页面。您是否多次使用
history\u注释
id?@SimplyCraig您使用
jQuery符号
是什么意思?我没有看到任何jQuery。@jeroen
$(“#history\u comment”)
=jQuery符号
document.getElementById(“history\u comment”)
=JavaScript。因此,他将这两者与
document.getElementById(“#history_comment”)
@SimplyCraig混合在一起好吧,我没有在css选择器和jQuery之间建立连接…@jeroen我想他可能只是在使用css选择器,但绝不会少用JavaScript:)快速浏览一下你的页面。您是否多次使用
history\u注释
id?@SimplyCraig您使用
jQuery符号
是什么意思?我没有看到任何jQuery。@jeroen
$(“#history\u comment”)
=jQuery符号
document.getElementById(“history\u comment”)
=JavaScript。因此,他将这两者与
document.getElementById(“#history_comment”)
@SimplyCraig混合在一起好吧,我没有在css选择器和jQuery之间建立连接…@jeroen我想他可能只是在使用css选择器,但从来没有少过JavaScript所没有使用的:)他说的没有jQuery但使用jQuery符号很有趣我在哪里使用jQuery符号?您是否在看PHP代码并认为它是jQuery@user3412847-您的解决方案有效,并且不包含任何错误信息。选择您的答案作为赢家。有趣的是,他说没有jQuery,但使用jQuery符号:我在哪里使用jQuery符号?您是否在看PHP代码并认为它是jQuery@user3412847-您的解决方案有效,并且不包含任何错误信息。选择你的答案作为赢家。我使用的CMS控制器文件非常复杂,我觉得这只是一个更简单,更优雅的方法。输入评论的个人是将接受如何正确输入评论培训的员工。另外,尝试使用.innerHTML不起作用,.value确实起作用了。将“#id”更改为“id”是否解决了您的问题?是的,但我必须将.innerHTML转换回.value才能使其工作。我使用的CMS向控制器文件发送的帖子非常复杂,我觉得这只是一种更简单、更优雅的方法。输入评论的个人是将接受如何正确输入评论培训的员工。另外,尝试使用.innerHTML不起作用,.value起作用。将“#id”更改为“id”是否解决了您的问题?是的,但我必须将.innerHTML转换回.value才能使其工作。
Uncaught TypeError: Cannot read property 'value' of null
addedcomment
onblur
Putting the JS below the textarea.
onblur vs onBlur
jQuery solution
Uncaught TypeError: Cannot read property 'value' of null