javascript - 如何在 jquery 中显示 “NO COUNTRY FOUND” 输入搜索?

标签 javascript jquery html

我正在尝试显示与用户输入匹配的文本。它有效,但有一个问题让我想弹出一个通知“找不到国家/地区”。如果我输入一个词就输入“AFGHANISTON”或“ALGEZIA”或其他。然后我希望此代码将运行 $("ul.suggestions").html('NO COUNTRY FOUND')

那么,如果插入的单词不匹配,如何显示“NO COUNTRY FOUND”通知?因为如果我在该输入上输入了一个单词错误,它只会显示一个空白

var selectValues = {
    "af": "AFGHANISTAN",
    "al": "ALBANIA",
    "dz": "ALGERIA"
};
$(document).on('click keyup', '.country-tager', function(e) {
    var tagValue = $(this).val().toUpperCase();
    if (tagValue.length > 0) {
        $("ul.suggestions").html('');
        $.each(selectValues, function(key, index) {
            if (this.indexOf(tagValue) > -1) {
                $("ul.suggestions").append('<li><a data="' + key + '">' + this + '</a></li>');
            }
        });
    } else {
        $("ul.suggestions").html('please insert');
    }
    e.stopPropagation();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="country-tager country-search-input typeahead tag-field" autocomplete="off" type="text" placeholder="Search country">
<ul class="country-list suggestions"></ul>

最佳答案

匹配成功后,可以统计列表中li的个数,如果为零,可以将HTML设置为NO COUNTRY FOUND.

以下是一个工作演示:

var selectValues = {
    "af": "AFGHANISTAN",
    "al": "ALBANIA",
    "dz": "ALGERIA"
};
$(document).on('click keyup', '.country-tager', function(e) {
    var tagValue = $(this).val().toUpperCase();
    if (tagValue.length > 0) {
        $("ul.suggestions").html('');
        $.each(selectValues, function(key, index) {
            if (this.indexOf(tagValue) > -1) {
                $("ul.suggestions").append('<li><a data="' + key + '">' + this + '</a></li>');
            }
        });
        
        if ($('ul.suggestions li').length === 0) {
          $("ul.suggestions").html('NO COUNTRY FOUND');
        }
    } else {
        $("ul.suggestions").html('please insert');
    }
    e.stopPropagation();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="country-tager country-search-input typeahead tag-field" autocomplete="off" type="text" placeholder="Search country">
<ul class="country-list suggestions"></ul>

关于javascript - 如何在 jquery 中显示 “NO COUNTRY FOUND” 输入搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49777587/

相关文章:

javascript - 如何使每个循环在 IE7 中工作?

javascript - 如何在页面加载时弹出对话框

javascript - 如何使用 Chrome DevTools 检查 BroadcastChannel?

jquery - iOS 使用 cordova 上传图像无法正常工作

html - 无法使图像与 Foundation block 网格类的 div 底部对齐

html - 如何在 HTML 中引用标记值

Google map 的 Javascript 事件处理

javascript - 如何解决,偶循环延迟(非实时)快速悬停时 `in, out , in , out , in, out , in , out`?

html - IE8 及以下 inline-block CSS

javascript - jQuery - 从 2 列表创建数组