我正在开发一个具有用户输入和用户擦除功能的聊天应用程序,但是当textarea聊天输入为空时(当用户删除所有他输入的内容时)我很难调用函数
var msg=$("#chat_input").val();
if ((e.which== 8 || e.keyCode == 8) && (msg.trim() == "" || msg.length <= 1)) {
// call the function
}
当用户键入一个字母然后将其删除时,不会调用该函数,并且此if
语句为false
我该怎么办?
答案 0 :(得分:0)
退回最后一个字符或仅包含新行或空格意味着this.value
将返回false
$('#chat_input').keyup(function(e){
if (e.which == 8 && this.value == false) {
}
});
value
为false
,如果只是空格,换行符等,那么您就不需要trim()
( msg.length <= 1 ) // = true when second to last or last
答案 1 :(得分:0)
您可以使用隐式真/假检查来简化此操作
var msg=$("#chat_input").val();
if (e.which== 8 && (!msg || !msg.trim())) {
// call the function
}
如果!msg
未定义或为空, msg
将返回true,如果!msg.trim()
为空字符串,则msg.trim()
将返回true。