PHP - HTML - Javascript - 通过按回车按钮从文本区域提交文本
PHP - HTML - Javascript - Submit text from textarea by pressing enter button
我正在使用 html-php-javascript 进行简单的聊天。
我想从 textarea 提交文本到日志文件,因为 "chatbox" 将从那里加载聊天。
我编写了在 "admin_post.php" 的 textarea 中提交文本的代码并且它有效。
但是,管理员只能通过按 "send" 按钮来执行此操作。
是否可以制作 javascript 以便当管理员在键盘上按 "enter" 时,它会像在表单中按 "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>
对于 "send" 按钮脚本:
<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 按钮与上面的 "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>
请帮助我,感谢您抽出时间。 :)
首先,您的 HTML 有问题。您在打开时关闭了 textarea
标签。
对于解决方案,希望此 JSFiddle 对您有所帮助。这是代码:
$("#adminmsg").on('keypress', function(e){
if (e.which == 13)
{
e.preventDefault();
console.log($(this).val());
$(this).val("");
}
});
要点:
- 你选错了。
#
对应ID,.
对应类.
- 您的代码可能 运行 在文档完全加载之前;因此它找不到要绑定的元素。使用
on
代替在页面上随时绑定到相应的选择器;或使用将您的代码放入 $(document).ready(function(){ /* your code */ });
以在页面完全加载并准备就绪后执行。
我正在使用 html-php-javascript 进行简单的聊天。 我想从 textarea 提交文本到日志文件,因为 "chatbox" 将从那里加载聊天。
我编写了在 "admin_post.php" 的 textarea 中提交文本的代码并且它有效。
但是,管理员只能通过按 "send" 按钮来执行此操作。 是否可以制作 javascript 以便当管理员在键盘上按 "enter" 时,它会像在表单中按 "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>
对于 "send" 按钮脚本:
<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 按钮与上面的 "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>
请帮助我,感谢您抽出时间。 :)
首先,您的 HTML 有问题。您在打开时关闭了 textarea
标签。
对于解决方案,希望此 JSFiddle 对您有所帮助。这是代码:
$("#adminmsg").on('keypress', function(e){
if (e.which == 13)
{
e.preventDefault();
console.log($(this).val());
$(this).val("");
}
});
要点:
- 你选错了。
#
对应ID,.
对应类. - 您的代码可能 运行 在文档完全加载之前;因此它找不到要绑定的元素。使用
on
代替在页面上随时绑定到相应的选择器;或使用将您的代码放入$(document).ready(function(){ /* your code */ });
以在页面完全加载并准备就绪后执行。