Jquery autocomplete插件的使用示例

源码地址:

https://download.csdn.net/download/chendongpu/13211245

Jquery autocomplete插件的使用示例 

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>jQuery Autocomplete入门示例</title>

    <!-- 引入jQuery的js文件 -->
    <script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js" ></script>

    <!-- 引入jQuery UI的css文件 -->
    <link rel="stylesheet" type="text/css" href="https://apps.bdimg.com/libs/jqueryui/1.10.4/css/jquery-ui.min.css" />


    <!-- 引入jQuery UI的js文件 -->
    <script type="text/javascript" src="https://apps.bdimg.com/libs/jqueryui/1.10.4/jquery-ui.min.js" ></script>

    <style type="text/css">
        #sayHi {
            color: blue;
        }
    </style>
</head>
<body>

<label for="language">请输入指定的语言:</label>

<input id="language" name="language" type="text">

<input id="lang_id" name="lang_id" type="hidden" >

<p id="msg">
    "你好"对应的翻译是:<span id="sayHi"></span>
</p>


</body>
<script type="text/javascript">

    $("#language").autocomplete({
        // 静态的数据源
        source: [
            { label: "Chinese", value: 1, sayHi: "你好" },
            { label: "English", value: 2, sayHi: "Hello" },
            { label: "Spanish", value: 3, sayHi: "Hola" },
            { label: "Russian", value: 4, sayHi: "Привет" },
            { label: "French", value: 5, sayHi: "Bonjour" },
            { label: "Japanese", value: 6, sayHi: "こんにちは" },
        ],
        select: function(event, ui){
            // 这里的this指向当前输入框的DOM元素
            // event参数是事件对象
            // ui对象只有一个item属性,对应数据源中被选中的对象

            this.value = ui.item.label;
            $("#lang_id").val( ui.item.value );
            $("#sayHi").html( ui.item.sayHi );

            // 必须阻止默认行为,因为autocomplete默认会把ui.item.value设为输入框的value值
            event.preventDefault();
        }
    });

</script>
</html>

 运行效果如下:

在实际应用上,我们的数据源并不是一成不变的。大多数情况下,我们的数据都保存在数据库中,此时,我们就需要使用autocomplete通过AJAX请求获取远程数据作为数据源。

$("#language").autocomplete({
	source: "public.php"
});

对应的 public.php 的服务器页面代码如下:

<?php
header('Content-Type:text/html;charset=UTF-8');

//为了方便举例,这里使用数组来模拟,你也可以在实际应用中从数据库中读取数据
//返回的数据最好是数组或对象类型的JSON格式字符串
$languages = array('Chinese', 'English', 'Spanish', 'Russian', 'French', 'Japanese', 'Korean', 'German');

echo json_encode($languages);
?>

此时,我们再次访问该页面,我们仍然可以看到自动完成的输入效果。

从远程服务器获取数据的自动完成功能

如果该参数是函数,Autocomplete会为其提供两个参数:前者是一个仅有term属性的对象,该属性表示用户的输入;后者是一个响应函数。你可以根据用户的输入,自行获取数据,并进行任何处理,最后调用响应函数(第二个参数),将数组数据交给Autocomplete去显示菜单。

$("#title").autocomplete( {
	source: function(request, response){
		// request.term 是用户输入的字符串
		// 你可以在这里自行获取数据、自行处理
		
		var dataArray = [,,,]; // 表示处理后的数组数据

		// 将数组数据交给Autocomplete显示为菜单
		// 如果情况特殊,你也可以不调用,从而不显示菜单
		response( dataArray );
	}
} );

我自己的例子按输入加载公司名字,关键代码

    $("#companyName").autocomplete({

        source: function(request, response){
            // request.term 是用户输入的字符串
            // 你可以在这里自行获取数据、自行处理
            console.log("term",request.term);

            var term = request.term;

            $.get("./ajax/all_company.php",{term:term},function(data){
                var dataArray = data;
                console.log("dataArray",dataArray);
                response( dataArray );
            },'json');

            //var dataArray = [,,,]; // 表示处理后的数组数据

            // 将数组数据交给Autocomplete显示为菜单
            // 如果情况特殊,你也可以不调用,从而不显示菜单
            //response( dataArray );
        }


    });

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

reg183

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值