我已经设置了<textarea>
和功能,可以选择按键。我设置了如果用户按Enter键,文本区域中输入的文本将被提交到数据库。
但是,我想阻止提交空文本,只需按Enter键并提交即可。我还注意到,当Enter时,会创建一个新行,所以我不能只检查文本是否为“”,或者它的长度是否为0,因为第二次会有一个新行。
使用键盘检测的jQuery是:
$(document).ready(function(){
$('.active-buddy-tab div#chat-window form#chat-message textarea#message').live('keydown', function(event) {
var key = event.which;
// all keys including return
if (key >= 33) {
var maxLength = $(this).attr("maxlength");
var length = this.value.length;
if (length >= maxLength) {
event.preventDefault();
}
}
});
$('.active-buddy-tab div#chat-window form#chat-message textarea#message').live('keyup', function(e) {
if (e.keyCode == 13) {
var text = $(this).val();
var maxLength = $(this).attr("maxlength");
var length = text.length;
var to = $('.active-buddy-tab div h3 p#to').text();
if (length <= maxLength + 1) {
chat.send(text, from, to);
chat.update(from, to);
$(this).val("");
} else {
$(this).val(text.substring(0, maxLength));
}
}
});
});
那么如何防止发送空消息?如果这很简单,我很抱歉,也许我在考虑这个问题。
谢谢, 赫里斯托斯