2016-11-24 116 views
1

我正在使用html-php-javascript进行简单的聊天。 我想从文本提交文本到日志文件,因为“聊天室”会从那里加载聊天。PHP - HTML - Javascript - 通过按enter键提交textarea文本

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

但是,管理员只能通过按“发送”按钮来做到这一点。 当管理员按下键盘上的“输入”时,是否可以创建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> 

,并为“发送”按钮脚本:

<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可以做到与上面的“发送”按钮脚本完全相同,只需按下键盘上的回车按钮即可。

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

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

+0

你能指定出了什么问题吗?你期望的行为是什么,你实际得到了什么? – Cunning

+0

嗨。我不能通过按回车按钮将textarea中的文本提交到日志聊天文件中。 – anakpanti

+0

欢迎来到Stack Overflow。你可以改善你的问题。请阅读[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。当你的代码没有任何额外的东西显示你的确切问题时,你会向志愿帮助你的人表示敬意。如果您设置代码的格式以消除滚动,则可以让其他人更容易地帮助您。 – zhon

回答

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 */ });内的代码。
+1

哦,我的。非常感谢。你的第一点是对的,我在我的textarea的类和名称/ id之间犯了一个错误。 – anakpanti

相关问题