2016-11-24 15 views
1

私はhtml-php-javascriptを使って簡単なチャットをしています。 "チャットボックス"がそこからチャットを読み込むため、テキストエリアからログファイルにテキストを提出したいと思います。PHP - HTML - Javascript - 入力ボタンを押してテキストエリアからテキストを送信

"admin_post.php"でテキストエリアにテキストを送信するコードを書いています。

ただし、「送信」ボタンを押すだけで管理者が行うことができます。 管理者がキーボードで「Enter」を押すとjavascriptを作成することはできますか?「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> 

は、私は私の問題を解決するために、この以下のスクリプトを試してみたが、それはdoesnの仕事はありません。私は下の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> 

ご協力いただきありがとうございます。 :)

+0

何がうまくいかないのか指定できますか?あなたの期待される行動は何ですか?実際には何が得られますか? – Cunning

+0

こんにちは。テキスト入力のテキストは、Enterボタンを押してログチャットファイルに送信できません。 – anakpanti

+0

ようこそスタックオーバーフロー。あなたはあなたの質問を改善することができます。 [最小、完全、および検証可能な例](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

oh my。どうもありがとうございます。あなたの最初のポイントは正しいです、私はクラスと名前/私のテキストエリアのIDの間でミスを犯しました。 – anakpanti

関連する問題