jquery ui autocomplete MVC
后端:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace _2021DemoSite.Controllers { public class AutoCompleteDemoController : Controller { private List<UserAccount> GetData() { List<UserAccount> users = new List<UserAccount>(){ new UserAccount {UserId=1,Name= "Kate1" ,Telephone= "1234" ,Email= "a@b.com" }, new UserAccount { UserId = 2, Name = "Kate2" , Telephone = "12345" , Email = "c@d.com" }, new UserAccount {UserId=3,Name= "Kate3" ,Telephone= "123456" ,Email= "e@bf.com" }, new UserAccount { UserId = 4, Name = "Kate4" , Telephone = "1234567" , Email = "c@b.com" }, new UserAccount {UserId=5,Name= "Kate5" ,Telephone= "12345678" ,Email= "c@b.com" }, new UserAccount { UserId = 6, Name = "Kate6" , Telephone = "123456789" , Email = "c@b.com" }, new UserAccount {UserId=7,Name= "Kate7" ,Telephone= "1234567890" ,Email= "c@b.com" }, new UserAccount { UserId = 8, Name = "Kate8" , Telephone = "12345678901" , Email = "c@b.com" } }; return users; } private List<UserAccount> GetData2() { List<UserAccount> users = new List<UserAccount>(){ new UserAccount {UserId=1,Name= "Lina1" ,Telephone= "1234" ,Email= "a@b.com" }, new UserAccount { UserId = 2, Name = "Lina2" , Telephone = "12345" , Email = "c@d.com" }, new UserAccount {UserId=3,Name= "Lina3" ,Telephone= "123456" ,Email= "e@bf.com" }, new UserAccount { UserId = 4, Name = "Lina4" , Telephone = "1234567" , Email = "c@b.com" }, new UserAccount {UserId=5,Name= "Lina5" ,Telephone= "12345678" ,Email= "c@b.com" }, new UserAccount { UserId = 6, Name = "Lina6" , Telephone = "123456789" , Email = "c@b.com" }, new UserAccount {UserId=7,Name= "Lina7" ,Telephone= "1234567890" ,Email= "c@b.com" }, new UserAccount { UserId = 8, Name = "Lina8" , Telephone = "12345678901" , Email = "c@b.com" } }; return users; } // GET: AutoCompleteDemo public ActionResult Index() { return View(); } public ActionResult SearchAccountContact( string key) { var data = GetData(); var finalData = data.Where(s => s.Name.Contains(key)).Take(5).Select( r => new { value = r.UserId, label = r.Name, phone = r.Telephone, email = r.Email }).ToArray(); return Json(finalData, JsonRequestBehavior.AllowGet); } public ActionResult SearchAccountContact2( string key) { var data = GetData2(); var finalData = data.Where(s => s.Name.Contains(key)).Take(5).Select( r => new { value = r.UserId, label = r.Name, phone = r.Telephone, email = r.Email }).ToArray(); return Json(finalData, JsonRequestBehavior.AllowGet); } } public class UserAccount { public int UserId { get ; set ; } public string Name { get ; set ; } public string Telephone { get ; set ; } public string Email { get ; set ; } } } |
前端:
@{ ViewBag.Title = "Index"; Layout = null; } <link href="~/Content/jquery-ui.css" rel="stylesheet" /> @*<script src="~/Scripts/jquery-3.4.1.js"></script>*@ <script src="~/Scripts/jquery.js"></script> <script src="~/Scripts/jquery-ui.js"></script> <input id="name" type="text" placeholder=""> //使用者輸名子時啟動自動完成配對 <input id="id" type="text" placeholder=""> <input id="phone" type="text" placeholder=""> <input id="email" type="text" placeholder=""> <input type="checkbox" id="chkTest" />Check <script> //var availableTags = [ // "ActionScript", // "AppleScript", // "Asp", // "BASIC", // "C", // "C++", // "Clojure", // "COBOL", // "ColdFusion", // "Erlang", // "Fortran", // "Groovy", // "Haskell", // "Java", // "JavaScript", // "Lisp", // "Perl", // "PHP", // "Python", // "Ruby", // "Scala", // "Scheme" //]; //$("#name").autocomplete({ // source: availableTags //}); debugger; $("#name").autocomplete({ minLength: 0, source: function (request, response) { debugger; $.ajax({ url: '/AutoCompleteDemo/SearchAccountContact', type: "Get", dataType: "json", data: { key: request.term//传到后台的参数 }, success: function (data) { response($.map(data, function (item) { this.console.log(item); return { label: item.label, value: item.value, phone: item.phone, email: item.email } })); } }); }, //focus参数事件介绍:在下拉选项匹配时如果鼠标有焦点到某个选项,就会把名字带入#name输入框中 //focus: function (event, ui) { // $("#name").val(ui.item.label); // return false; //}, //select参数事件介绍:使用者选择下拉式项目后触发事件(点击),自动将所有的值带入输入框中 select: function (event, ui) { $("#id").val(ui.item.value); $("#phone").val(ui.item.phone); $("#email").val(ui.item.email); return false; } }); $("#chkTest").click(function () { debugger; $("#name").autocomplete({ minLength: 0, source: function (request, response) { debugger; $.ajax({ url: '/AutoCompleteDemo/SearchAccountContact2', type: "Get", dataType: "json", data: { key: request.term//传到后台的参数 }, success: function (data) { response($.map(data, function (item) { this.console.log(item); return { label: item.label, value: item.value, phone: item.phone, email: item.email } })); } }); }, //focus参数事件介绍:在下拉选项匹配时如果鼠标有焦点到某个选项,就会把名字带入#name输入框中 //focus: function (event, ui) { // $("#name").val(ui.item.label); // return false; //}, //select参数事件介绍:使用者选择下拉式项目后触发事件(点击),自动将所有的值带入输入框中 select: function (event, ui) { $("#id").val(ui.item.value); $("#phone").val(ui.item.phone); $("#email").val(ui.item.email); return false; } }); $("#name").autocomplete("search", "5"); }); </script>
本文来自博客园,转载请注明原文链接:https://www.cnblogs.com/keeplearningandsharing/p/14899639.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构