当输入值为null时引发onkeypress元素

raising onkeypress element when input value is null

本文关键字:onkeypress 元素 null 输入      更新时间:2023-09-26

我正在开发一个具有用户键入和用户擦除功能的聊天应用程序,但当文本区聊天输入为空时(当用户擦除他键入的所有内容时),我很难调用函数

  var msg=$("#chat_input").val();
 if ((e.which== 8 || e.keyCode == 8) && (msg.trim() == "" || msg.length <= 1)) {
    // call the function 
 }

当用户键入一个字母然后将其擦除时,不会调用该函数,并且该if语句为false我如何修复这个

后退最后一个字符或只有新行或空格意味着this.value将返回false

$('#chat_input').keyup(function(e){
    if (e.which == 8 && this.value == false) {
    }
});

jsFiddle演示


如果只是一个空格、换行符等,那么value就是false,所以您不需要trim()

( msg.length <= 1 ) // = true when second to last or last

您可以通过使用隐式真/假检查来简化这一过程

 var msg=$("#chat_input").val();
 if (e.which== 8 && (!msg || !msg.trim())) {
    // call the function 
 }

如果msg未定义或为null,则!msg将返回true;如果msg.trim()为空字符串,则!msg.trim()将返回true。