PHP - HTML - Javascript - 按enter按钮从textarea提交文本

时间:2016-11-24 02:40:20

标签: javascript php html textarea

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

我编写了代码以在textarea中提交文本" admin_post.php"它的工作原理。

但是,管理员只能通过按"发送"按钮。 当管理员按下"输入"是否可以制作javascript在键盘上,它将按下"发送"表格中的按钮?

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

和#34;发送&#34;按钮脚本:

<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可以与&#34; send&#34;完全相同。按下键盘上的输入按钮,上面的按钮脚本。

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

请帮助我,谢谢你的时间。 :)

1 个答案:

答案 0 :(得分:0)

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