Jquery+java+jsp 搜索自动联想、搜索自动提示

实现思路:后台将所有要检索的字段存放到json串中带到前端,前端再根据用户输入的内容进行检索。

实现效果:当输入“优房”时自动联想下拉,机构名称中所有包含“优房”的机构都会下拉列出来:

当选择第一个后:

我的项目后端是java语言,前端是jsp。使用的是jquery-1.11.1.js、jquery-ui.min.js。

后端关键代码:

1 List<Map<String, Integer>> organList=srbaWfUserTurnoverInfoService.getSoIdOrganNames(null);
2             JSONArray organJson=JSONArray.fromObject(organList);
3             //System.out.println();
4             model.addAttribute("organJson", organJson);
5             return "user/exam";

上面organJson的内容示例:

[{"organCode":"123434","value":4,"label":"深圳市优房不动产有限公司"},{"organCode":"23423423","value":6,"label":"深圳市优房世家网络有限公司"},{"organCode":"23432432432","value":21,"label":"深圳市优房房地产代理有限公司}]

前端exam.jsp页面关键代码:
 1、jsp代码

<script type="text/javascript" src="<c:url value="/resources/js/jquery-1.11.1.js"/>"></script>
<script type="text/javascript" src="<c:url value="/resources/js/jquery-ui.min.js"/>"></script>
<!--
获取到后端传进来的organJson串-->
<div id="organJsonDiv" style="display: none">${organJson}</div> <!--显示所选择的值--> <input id="organ" type="text" />
 licenseNO:<input id="licenseNo" type="text" />
organId:<input id="organ_id" type="text" />

2、javaScript代码

 1 $(function() {    
 2         $("#userName").prop("checked", true);
 3         $("#organName").removeAttr("checked");
 4         var organJson =$("#organJsonDiv").text();
 5         organJson = eval("(" + organJson + ")");
 6         $( "#organ" ).autocomplete({
 7             minLength: 1,
 8             source: organJson,
 9             delay:5,
10             width:200,
11             mustMatch:true,
12             //自动联想出来的列表获得焦点时执行
13             focus: function( event, ui ) {
14               $( "#organ" ).val( ui.item.label );
15               $( "#organ_id" ).val( ui.item.value );
16               $( "#licenseNo" ).val( ui.item.organCode );
17               return false;
18             },
19             //选中自动联想出来的列表是执行
20             select: function( event, ui ) {
21               $( "#organ" ).val( ui.item.label );
22               $( "#organ_id" ).val( ui.item.value );
23               $( "#licenseNo" ).val( ui.item.organCode );
24               return false;
25             }
26           })
27           //自动创建下拉列表
28           .autocomplete( "instance" )._renderItem = function( ul, item ) {
29             return $( "<li>" )
30               .append( "<a>" + item.label + "</a>" )
31               .appendTo( ul );
32           };
33         });

o了,大功告成!

 

转载于:https://www.cnblogs.com/airduce/p/7390982.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的jQueryJava实现的证书查询页面前端代码(index.jsp): ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>证书查询</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> </head> <body> <div style="text-align:center;"> <h1>证书查询</h1> <form> <label for="certNo">证书编号:</label> <input type="text" id="certNo" name="certNo"><br><br> <label for="name">姓名:</label> <input type="text" id="name" name="name"><br><br> <button id="queryBtn">查询</button> </form> <div id="result" style="display:none;"> <p id="certNoResult"></p> <p id="nameResult"></p> <p id="statusResult"></p> </div> </div> <script> $(document).ready(function(){ $("#queryBtn").click(function(){ var certNo = $("#certNo").val(); var name = $("#name").val(); $.ajax({ type: "POST", url: "query", data: {certNo: certNo, name: name}, success: function(data){ $("#certNoResult").text("证书编号: " + certNo); $("#nameResult").text("姓名: " + name); $("#statusResult").text("证书状态: " + data); $("#result").show(); } }); return false; }); }); </script> </body> </html> ``` 在上面的代码,我们依然使用了jQuery库来处理表单提交。当用户点击查询按钮时,我们使用jQuery的$.ajax()方法向服务器发送一个POST请求,将证书编号和姓名作为参数传递给服务器。在成功获取服务器响应后,我们将结果呈现给用户。 注意,这个例子使用了一个名为"query"的servlet来处理证书查询。您需要根据您自己的需求更改此servlet名称和实现方式。 后端代码(QueryServlet.java): ``` import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/query") public class QueryServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String certNo = request.getParameter("certNo"); String name = request.getParameter("name"); // TODO: 根据证书编号和姓名查询证书信息 String status = "已颁发"; response.setContentType("text/plain"); response.setCharacterEncoding("UTF-8"); response.getWriter().write(status); } } ``` 在上面的代码,我们编写了一个名为"QueryServlet"的servlet,用于处理证书查询。在doPost()方法,我们获取证书编号和姓名,并使用Java代码查询证书信息。在这个例子,我们简单地返回一个字符串“已颁发”作为证书状态。 希望这个例子可以帮助您开始编写自己的jQueryJava实现的证书查询页面

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值