JS小案例_搜索候选(联想)/用户名是否可用

知识点

onkeyup() 搜索框事件绑定 
$.ajax异步请求服务器数据
提示框的展示与隐藏
选中提示框的内容,页面跳转或内容赋值到搜索框

实现代码(前端)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户搜索</title>
    <style type="text/css">
        .content {
            width: 643px;
            margin: 100px auto;
            text-align: center;
        }

        input[type='text'] {
            width: 530px;
            height: 40px;
            font-size: 14px;
        }

        input[type='button'] {
            width: 100px;
            height: 46px;
            background: #38f;
            border: 0;
            color: #fff;
            font-size: 15px
        }

        .show {
            position: absolute;
            width: 533px;
            /*height: 100px;*/
            border: 1px solid #999;
            border-top: 0;
            display: none;
        }
    </style>
    <script src="js/jquery-3.3.1.min.js"></script>
</head>
<body>
<form autocomplete="off">
    <div class="content">
        <img src="img/logo.jpg">
        <br/><br/>
        <input type="text" id="username">
        <input type="button" value="搜索一下">
        <!--用于显示联想的数据-->
        <div id="show" class="show"></div>
    </div>
</form>
</body>
<script>
    //1.为用户名输入框绑定鼠标点击事件
    $("#username").keyup(function () {
        //2.获取输入的用户名
        let username = $("#username").val().trim();

        //3.判断用户名是否为空
        if (username == null || username === "") {
            //4.如果为空,将联想框隐藏
            $("#show").hide();
            return;
        }

        $.post(
            "user",
            "username=" + username,
            function (data) {
                if (data != null && data !== "" && data != "[]") {
                    let showMsg = "";
                    $.each(data, function (i, e) {
                        showMsg += "<div>" + e.name + "</div>";
                    });
                    $("#show").html(showMsg);
                    $("#show").show();
                    $("#show div").click(change);
                }
            },
            "json"
        )
        //
        //     //5.如果不为空,发送AJAX请求。并将数据显示到联想框
        //     $.ajax({
        //         //请求的资源路径
        //         url: "user",
        //         //请求参数
        //         data: {"username": username},
        //         //请求方式
        //         method: "POST",
        //         //响应数据形式
        //         dataType: "json",
        //         //请求成功后的回调函数
        //         success: function (data) {
        //             if (data != null && data != "") {
        //                 //将返回的数据显示到show的div
        //                 let names = "";
        //                 for (let i = 0; i < data.length; i++) {
        //                     names += "<div>" + data[i].name + "</div>";
        //                 }
        //                 $("#show").html(names);
        //                 $("#show").show();
        //             }
        //         }
        //     });
    });

    function change() {
        $("#username").val($(this).html());
        $("#username").keyup();
    }
</script>
</html>

服务器实现

基本的接收前端数据,处理逻辑,访问数据库
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值