【问题标题】:PHP - HTML - Javascript - Submit text from textarea by pressing enter buttonPHP - HTML - Javascript - 通过按 Enter 按钮从 textarea 提交文本
【发布时间】:2017-04-08 05:13:39
【问题描述】:

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

我编写了代码以在“admin_post.php”的 textarea 中提交文本,它可以工作。

但是,管理员只能通过按“发送”按钮来执行此操作。 是否可以制作 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>

对于“发送”按钮脚本:

<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 按钮。

<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>

请帮助我,感谢您的宝贵时间。 :)

【问题讨论】:

  • 您能具体说明发生了什么问题吗?您的预期行为和实际得到的结果是什么?
  • 嗨。我无法通过按 Enter 按钮将 textarea 中的文本提交到日志聊天文件中。
  • 欢迎来到 Stack Overflow。你可以改进你的问题。请阅读Minimal, Complete, and Verifiable example。当你的代码没有任何额外的东西显示你的精确问题时,你就是在尊重那些自愿帮助你的人。如果您格式化代码以消除滚动,那么其他人可以更轻松地帮助您。
  • 谢谢。我删除了一些不必要的代码。

标签: javascript php html textarea


【解决方案1】:

首先,您的 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 */ }); 以在页面完全加载并准备好后执行。

【讨论】:

  • 天哪。太感谢了。您的第一点是对的,我在 textarea 的类和名称/ID 之间犯了一个错误。
猜你喜欢
  • 2011-12-13
  • 1970-01-01
  • 2016-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
  • 1970-01-01
  • 2019-03-07
相关资源
最近更新 更多