2016-11-24 51 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

相關問題