jQuery datepicker和autocomplete在一起

时间:2017-04-13 12:06:38

标签: javascript java jquery

我是Jquery和Javascripts的新手。

我在jsp页面上有两个项目(Index.jsp)。一个文本项目'供应商名称'是自动完成'当我输入字母和其他文字项目时,就是接受“比尔日期”'使用Jquery Datepicker。

当我开始输入字母表以自动填充存储在数据库中的供应商名称时,我尝试调用另一个jsp(getdata.jsp)。此功能可以解决任何问题。

但是,当我加入比尔日期'项目也在Index.Jsp中,自动完成不起作用但日期选择器正在工作。请告诉我如何进行自动完成和日期选择。

请注意,所需的库已下载并保存在我的工作目录中,库路径没有问题。

的index.jsp

<html>
<head>
    <link rel="stylesheet" type="text/css" href="./jquery.autocomplete.css" /> 
    <script type="text/javascript" src="./jquery.autocomplete.js"></script>    
        <script type="text/javascript" src="./jquery-3.2.1.min.js"></script> 
        <script type="text/javascript" src="./jquery-ui.min.js"></script>
        <link rel="stylesheet" href="./jquery-ui.min.css">

    <script type="text/javascript" >
        $(document).ready(function(){    
        $("#billdate").datepicker(
                                    {
                               inline:true,
                                       showOn: "button",
                                       buttonImageOnly: true,
                                       buttonImage: "From_Date_Calendar.jpg",
                                       dateFormat: "dd-M-yy"
                             });
            });
    </script>    
</head>
<body>
    <input type="text" id="country" name="country" />
    bill Date <input type="text" id="billdate" readonly /><br/> 

        <script>
           $("#country").autocomplete("getdata.jsp");
        </script>
</body>
</html>

getdata.jsp

<%@page import="java.util.Iterator"%>
<%@page import="java.util.List"%>
<%@page import="BillmgmtPack.DummyDB"%>
<%
         System.out.println("In get data.jsp"); 
    DummyDB db = new DummyDB();

    String query = request.getParameter("q");

    List<String> countries = db.getData(query);

    Iterator<String> iterator = countries.iterator(); 

    while(iterator.hasNext())
        {
        String country = (String)iterator.next();
        out.println(country);
    }  
%>

DummyDB.java

package BillmgmtPack;

import java.sql.Connection;
import java.sql.DriverManager;

import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import java.io.*; 
import java.sql.*;
import java.util.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.*;

import javax.naming.*;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;

public class DummyDB {

    public List<String> getData(String query) {
        String country = null;
        query = query.toLowerCase();
            Connection con=null;
        List<String> matched = new ArrayList<String>();

            try{
        Class.forName("oracle.jdbc.driver.OracleDriver");  
         con=DriverManager.getConnection(  
        "jdbc:oracle:thin:@xxx.xx.xxx.xx:1521:qqqqq","yyyyy","zzzzz"); 
            }catch(Exception e)
         {
            e.printStackTrace();
         } 
                try{
        Statement stmt=con.createStatement();

        ResultSet rs=stmt.executeQuery("select vendor_name from vendor_master where vendor_name like upper('"+query+"%')");
        //System.out.println("rs query-"+query);

        int k=0;
        while(rs.next())
        {
                //System.out.println("in rs query-"+query+"   / "+rs.getString(1));
        matched.add(rs.getString(1));
                k=k+1;
            } 
                    if (k==0)
                    {
                        matched.add("notfound");
                    }    
            }        catch(Exception e)
                     {
                        e.printStackTrace();
                     } 

        return matched;

    }
}

1 个答案:

答案 0 :(得分:0)

JQuery autocomplete也是jQuery ui中widget的名称。也许jQuery ui来替换其他的aucomplete,从而阻止了第一次操作。

我建议您删除第一个自动完成并使用jQuery ui引用Documentation