我目前有一个实时聊天室正在运行,我刚刚询问了一些用户我可以做些什么来让聊天室变得更好。多次被问到的一件事是......
“您能否添加一项功能,即按下回车按钮将发送我的消息,而不是在文本框中添加新行?”
我试图从 StackOverflow 上的另一篇文章中应用一些 jQuery,但无法让它工作。这是我当前的代码...
jQuery:
<!-- jQuery for submitting form -->
<script>
var msgForm = false;
$(function () {
$('.expand').keyup(function(event) {
if (event.keyCode == 13) {
this.form.submit();
msgForm = true;
return true;
}
});
if( msgForm = true ) {
$('#formSend').on('submit', function (e) {
e.preventDefault();
var formData = $('form').serialize();
$('.expand').prop("disabled", true)
$.ajax({
type: 'post',
url: 'send.php',
data: formData,
success: function () {
$(".expand").val('');
$('.expand').prop("disabled", false)
}
});
});
}
});
</script>
这里 ^^ 发出 Ajax 请求来发送消息,因此不像通常的表单那样涉及页面刷新。
如果需要,这里是表单的 HTML 标记...
<form action="send.php" method="post" name="formSend" id="formSend" />
<textarea id="styled" class="expand" name="msg" placeholder="Your Message Here" onfocus:"setbg(\'#e5fff3\');"required></textarea>
<input type="submit" name="submit" value="Send" class="send" />
</form>
最佳答案
我刚刚在 jsfiddle 中对此进行了测试,它工作正常。
html:
<form>
<textarea></textarea>
<input type="submit" value="Submit"/>
</form>
JavaScript:
$("textarea").keyup(function(event){
if(event.keyCode == 13){
$("form").submit();
}
});
$("form").on('submit', function(e){
e.preventDefault();
alert('abcde');
});
关于javascript - 按下回车键时提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24543509/