jQueryAutocomplete使用,支持输入中英文模糊匹配

本文介绍了如何利用jQuery的autocomplete插件在前端项目中实现文本框输入的模糊匹配查询功能。通过示例代码展示如何配置和调用插件,以实现输入时的下拉建议,并动态更新隐藏字段的值。

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

近期项目中有个需求:支持text文本框输入模糊匹配查询,找了下资料,jQuery有个插件jQuery.autocomplete,可以满足需求,故研究了下,记录下来。


项目中试用的前端语言是velocity,以及bui,autocomplete插件页面部分很简单,一个div包含两个文本框,text和hidden类型即可。


 页面代码如下:

    <div id="phNationalitySg1">
<input name="$group.phNationality1.key" type="text" data-rules="{required:true}" maxlength="100"  value="$group.phNationality1.value" id="phNationality1">
<input name="$group.phNationality.key" type="hidden" data-rules="{required:true}" maxlength="100"  value="$group.phNationality.value" id="phNationality"> 
</div>

js代码部分:

        //支持输入查询的下拉框,inputElement即type='text'的输入框,realElement即type="hidden"的输入框。

function fuzzyQuery(inputElement,realElement){
var spanWidth = $(inputElement).width() + 10;
if(countryNameArr!= null){
$(inputElement).autocomplete(
countryNameArr,
{
minChars : 0,
//max : 20,
autoFill : false,
mustMatch : false,
matchContains : true,
scrollHeight : 220,
width : spanWidth,
multiple : false,
formatItem : function(row, i, max) { //显示格式
return "<span style='width:"+spanWidth+"px;'>"
+ row.text + "</span>";
},
formatMatch : function(row, i, max) { //以什么数据作为搜索关键词,可包括中文,
return row.text;
},
formatResult : function(row) { //返回结果
return row.text;
}
}).result(function(event, data, formatted){
$(realElement).val(data.text);
});
}
}


调用方法:

  //国籍信息,支持模糊查询
$('#phNationality1').on('click',function(){
fuzzyQuery('#phNationality1', 'phNationality');
});
$('#phNationality1').on('change',function(){
var text = $('#phNationality1').val();
if(text){
$('#phNationalityCode').val(countryCodeArr[BUI.Array.indexOf(text, countryNameArr)]);
$('#phNationalityEN').val(countryCodeArr[BUI.Array.indexOf(text, countryNameArr)]);
}
});              

注:change事件主要是为了在选择的值改变时,对想要赋值的表单属性进行动态给值,也可以不加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值