Javascript 在不使用jquery的情况下将文本添加到blur上的textarea值
所以,我有一个记录评论的文本区。我试图在输入时将输入注释的用户的身份附加到注释的末尾 以下是检查用户会话并获取用户名称的PHP: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
//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