簡體   English   中英

PHP - HTML - Javascript - 按enter按鈕從textarea提交文本

[英]PHP - HTML - Javascript - Submit text from textarea by pressing enter button

我正在使用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>

並為“發送”按鈕腳本:

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

請幫助我,謝謝你的時間。 :)

首先,您的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 */ }); 在頁面完全加載並准備好后執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM