在没有jquery的模糊下将文本添加到textarea的值

Wil*_*ase 1 html javascript php

所以,我有一个记录评论的表格的textarea.我试图在输入时将输入评论的用户的身份附加到评论的末尾.

以下是检查用户会话并获取用户名称的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]";
?>
Run Code Online (Sandbox Code Playgroud)

应该附加到blur上的值的JavaScript:

<script>
    function addedcomment(){
        var commentby = document.getElementById("#history_comment").value;
        var commentby = commentby + '<?php echo $append; ?>';
        document.getElementById('#history_comment').value = commentby;
    }
</script>
Run Code Online (Sandbox Code Playgroud)

输入评论的文本区域:

<textarea name="history[comment]" rows="3" cols="5" style="height:6em; width:99%;" id="history_comment" onBlur="addedcomment()"></textarea>
Run Code Online (Sandbox Code Playgroud)

代码完全按照此处显示的顺序和方式显示在页面上,因此PHP在JavaScript出现之前设置$ append的值.我在dom控制台中遇到三个错误:

Uncaught TypeError: Cannot read property 'value' of null
addedcomment
onblur
Run Code Online (Sandbox Code Playgroud)

我正在使用的CMS与Prototype一起使用,因此即使在noConflict模式下,jQuery也不会一直工作(似乎它被选择性地调用).

我尝试过的事情:

Putting the JS below the textarea.
onblur vs onBlur
jQuery solution
Run Code Online (Sandbox Code Playgroud)

gil*_*t-v 5

这是因为您要添加一个不需要的" #"符号.document.getElementById()只需要元素id(history_comment)的名称.该错误基本上告诉您它无法获取value不存在的属性,即id为" #history_comment" 的元素.

你不需要一个jQuery解决方案,除了拼写错误之外你在这里没什么问题.

  • 有趣他说没有jQuery但使用jQuery表示法.:P (2认同)