如何让jQuery检测第一个输入是否是文本,如果是文本就触发jQuery


How to have jQuery detect wether first input is text or not and fire the jQuery if it is text

我希望这个jQuery只在实际文本(而不是像退格键或tab键)被输入到搜索栏后才触发,这样就不会从我的数据库中显示所有可能的搜索结果。

function searchq() {
    var searchTxt = $("input[name='search']").val();
    $.post("search.php",{searchVal:searchTxt,}, function(output) {
        $("#output").html(output);
    });
}

输入:

<input id='input' type="text" name="search" placeholder="Search Here..." onkeydown="searchq();" autocomplete="off">

根据trim的结果添加一个if条件:

if(searchTxt.trim() != '') {
    // do your post

trim将从字符串的两端删除空白。如果值中只有制表符或空格,则trim的结果将是一个空字符串。

正如@ karl - andr Gagnon在他的评论中指出的,还有一个jquery特定的函数可以用来修剪空白:

if($.trim(searchTxt) != '') {

测试输入是否为空

if (searchText != '') {
    ...
}