java 输入框下拉联想,MVC JQuery UI 实现联想输入下拉菜单

本文介绍了如何在实验室质量管理系统(LQMS)的设备管理模块中,利用JQueryUI的Autocomplete组件实现设备名称和资产号的联想输入功能。首先引用JQueryUI库及相关CSS,然后建立JSON数据源,最后编写JS代码来实现联想输入,并展示了在选中后如何将设备名称和代码赋值给输入框。这个功能简化了输入过程,提高了效率。
摘要由CSDN通过智能技术生成

最近在折腾实验室的质量管理系统(LQMS),在设备管理模块,使用联想输入来直接完成设备名称以及资产号的输入是个比较实用的功能。

最开始我考虑用DropDownList,通过增加option即下拉框的选项来完成输入。

后来想到我用JQuery UI的一个时间选择框来实现时间的输入,那么是否它也有类似的联想输入框呢?找了一下发现还真的有,是Widgets中的一个组件,叫Autocomplete。

我们还是看看要如何使用它吧:

1、引用JQuery UI库,这其实是要包含三个文件,除了UI外,还需要JQuery以及相应的css。

@Scripts.Render("~/bundles/jquery")

@Scripts.Render("~/Scripts/jquery-ui-1.10.4.custom.js")

@Styles.Render("~/Content/themes/base/jquery-ui.css")

@Styles.Render("~/Content/themes/base/jquery.ui.autocomplete.css")

2、建立数据源。联想输入下拉菜单中的内容肯定是通过Ajax方式获得的,因此你必须要在页面访问的时候,返回相应的数据。数据的格式可以使用现在比较通用的JSON格式,如果要你自己去写JSON格式,那么你一定会疯掉,好在VS2010经过这些年的发展,JSON格式只是小菜一碟了:

//ajax 获取设备名称

public JsonResult GetEquip(string SearchName)

{

return Json(db.Equipments.Where(E => E.EquipName.Contains(SearchName)).ToList(), JsonRequestBehavior.AllowGet);

//return Json(db.Equipments.Where(E => E.EquipName.Contains(SearchName)), JsonRequestBehavior.AllowGet);

}

记得要加入JsonRequestBehavior.AllowGet,否则系统会认为你这没有验证的接口不安全,会报错了。

犹记得那年手动的用php输出xml文档,哎!时代在进步,技术也在进步!

3、编写JS代码来实现联想输入框:

$("#EquipName").autocomplete({

source: function (request, response) {

$.ajax({

url: "http://localhost:3609/Equip/Equipment/GetEquip", //ajax取值

type: "get",

data: { "SearchName": request.term },

success: function (result) {

response($.map(result, function (item) {

return { code: item.EquipNum1, name: item.EquipName, label: "(" + item.EquipNum1 + ")" + " " + item.EquipName };

}));

}

});

},

select: function (event, ui) {

$("#EquipName").val(ui.item.name);

$("#EquipNum").val(ui.item.code);

return false;

},

autoFocus: true

});

上述的select代表选中后执行的函数,将设备名称和设备代码分别赋值给两个输入框。

效果如下:

7d6c291a01403a07db4341fa52e0b057.png

自从有了JQuery UI 妈妈再也不用担心我去写大把恶习的js了!

如无特别说明,本博客文章皆为原创。转载请说明,来自吵吵博客。

吵吵微信朋友圈,请付款实名加入:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值