PHP - HTML - Javascript - 通过按回车按钮从文本区域提交文本

PHP - HTML - Javascript - Submit text from textarea by pressing enter button

我正在使用 html-php-javascript 进行简单的聊天。 我想从 textarea 提交文本到日志文件,因为 "chatbox" 将从那里加载聊天。

我编写了在 "admin_post.php" 的 textarea 中提交文本的代码并且它有效。

但是,管理员只能通过按 "send" 按钮来执行此操作。 是否可以制作 javascript 以便当管理员在键盘上按 "enter" 时,它会像在表单中按 "send" 按钮一样?

这是 admin_post.php 中的 html 代码:

<form id="admintextform" name="message" action="">
            <?php $adminmsg = !empty($_POST['adminmsg']) ? $_SESSION['adminmsg'] : '';?>
            <textarea class="admintextarea" name="adminmsg" id="adminmsg" size="63" /><?php echo $adminmsg; ?></textarea>
            <input name="adminsubmitmsg" type="submit"  id="adminsubmitmsg" value="Send" />
        </form>

对于 "send" 按钮脚本:

<script type="text/javascript">
        //If user submits the form
        $("#adminsubmitmsg").click(function(){  
        var adminmsg = $("#adminmsg").val();
            $.post("admin_post.php", {text: adminmsg});             
            $("#adminmsg").attr("value", "");
            return false;
        });
</script>

我试过下面的脚本来解决我的问题,但它不起作用。我希望下面的 javascript 可以通过按键盘上的 enter 按钮与上面的 "send" 按钮脚本完全相同。

<script type="text/javascript">
        $("#admintextarea").keypress(function (e) {
            if(e.which == 13 && !e.shiftKey) {
                var adminmsg = $("#adminmsg").val();
                $.post("admin_post.php", {text: adminmsg});             
                $("#adminmsg").attr("value", "");
                return false;
            }
        });
</script>

请帮助我,感谢您抽出时间。 :)

首先,您的 HTML 有问题。您在打开时关闭了 textarea 标签。

对于解决方案,希望此 JSFiddle 对您有所帮助。这是代码:

$("#adminmsg").on('keypress', function(e){
  if (e.which == 13)
  {
    e.preventDefault();
    console.log($(this).val());
    $(this).val("");
  }
});

要点:

  1. 你选错了。 #对应ID,.对应类.
  2. 您的代码可能 运行 在文档完全加载之前;因此它找不到要绑定的元素。使用 on 代替在页面上随时绑定到相应的选择器;或使用将您的代码放入 $(document).ready(function(){ /* your code */ }); 以在页面完全加载并准备就绪后执行。