前端联想下拉框的实现

本文介绍了如何利用JavaScript开源框架Typeahead实现在用户输入字符时的前端联想下拉提示功能,增强了用户界面的友好性。实现过程中,需要引入特定的JS文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当用户输入字符时,前端可自动联想出用户输入的字符,下拉框可以增加界面的友好性,这种提示功能可通过开源框架typeahead来实现。

首先该功能需要包含以下JS文件:

<script src="../../Scripts/jquery.min.js" type="text/javascript"></script>
<script src="../../Scripts/bloodhound.js" type="text/javascript"></script>
<script src="../../Scripts/typeahead.bundle.js" type="text/javascript"></script>
<script src="../../Scripts/typeahead.jquery.js" type="text/javascript"></script>
假设前端的下拉框html代码如下:

<h2>Suggestion</h2>
 <div id="container">
<input class="typeahead" type="text" size="400" placeholder="suggestion">
</div>
JS初始化代码如下:

<script>
var bestPictures = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.obj.nonword('value'),
  queryTokenizer: Bloodhound.tokenizers.nonword,
  limit: 10,//最多显示10条数据
  remote: {
    url:'/home/suggest?keyword=%QUERY',//查询的URL,%QUERY为通用符,用于提交后台参数,当需要增加新的参数时就需要修改这里
    wildcard:'%QUERY'
  }
});

bestPictures.initialize();

$('#container .typeahead').typeahead( {
  hint: true,
  highlight: true,
  minLength: 1
}, {
  name: 'best-pictures',
  displayKey: function(item) {
    return item;//返回JSON数组中的每个元素用于显示
  },
  limit:10,
  source: bestPictures.ttAdapter(),
});
</script>
如需增加新的参数可修改remote配置,如:

remote: {
                                    url:'/home/json/suggestion?key=%QUERY&team=%TEAM',
replace:function(url,query) {
       var team = $("# team").val();
      return url.replace("%QUERY",query).replace('%TEAM',team);
}
后端/home/suggestion对应的Action如下:

public ActionResult Suggest()
{
     string query = this.Request.QueryString["keyword"];
       string[] s = { "hello","test"};
       return Json(s, JsonRequestBehavior.AllowGet);
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值