📜  js 自动完成 - Javascript (1)

📅  最后修改于: 2023-12-03 15:02:25.002000             🧑  作者: Mango

自动完成 - Javascript

在网页开发中,自动完成是一个方便的功能。这个功能可能会在搜索框、表单、输入框等多个场合使用到。在本文中,我们将探讨如何使用Javascript来实现一个简单的自动完成功能。

实现方式

我们可以使用 Javascript 的 Event 来监听用户输入的文本内容,然后通过 Ajax 技术向后台服务器请求符合该文本内容的搜索结果。

当后台服务器返回结果时,我们可以将这些结果显示在一个下拉列表等控件中。然后,当用户选择一个选项时,我们可以自动填充文本框或者将其它操作执行完毕。

代码实现

以下是一个使用 jQuery 实现的自动完成功能的代码示例:

$(document).ready(function(){
    $('#inputBox').on('input', function(){
        var searchText = $('#inputBox').val();   // 获取用户输入的文本内容
        $.ajax({
            type: 'GET',
            url: 'http://example.com/search/',
            data: 'search=' + searchText,
            dataType: 'json',
            success: function(data){
                var suggestionList = $('#suggestionList');
                suggestionList.empty();   // 先清空列表
                if(data.length == 0) return;

                // 将搜索结果添加到下拉列表中
                for(var i = 0; i < data.length; i ++){
                    suggestionList.append('<li>' + data[i] + '</li>');
                }

                // 显示下拉列表
                suggestionList.show();

                // 当点击下拉列表中的某一个选项时,自动填充文本框或其它操作
                $('li').on('click', function(){
                    $('#inputBox').val($(this).text());
                    suggestionList.hide();  // 隐藏下拉列表
                    // 其它操作
                });
            }
        });
    });
});

代码解释:

  • 首先,我们在文档加载完成后,使用 jQuery 的 on() 函数来监听输入框的 'input' 事件。
  • 然后,获取到用户输入的文本内容,并且发送 Ajax 请求到后台服务器,并且传递搜索文本。
  • 当后台服务器返回结果时,我们在列表控件中显示这些结果,并且使用 on() 函数来监听列表选项的 click 事件,以便自动填充文本框或执行其它操作。
总结

自动完成是一个十分有用的功能,在网页开发中也经常会遇到。使用 Javascript 可以轻松实现这个功能,通过使用 Ajax 和 Event 来完成用户输入的监听以及向服务器请求和结果的显示等操作,这些都是 Javascript 的常见应用场景,值得程序员们不断地学习与应用。