jquery autocomplete对localhost不起作用

时间:2009-11-10 09:19:55

标签: asp.net jquery autocomplete

我希望你能帮助我。

我在localhost aspx页面上使用了以下代码,因此它自动完成。

它完美无缺。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <link rel="stylesheet" href="http://dev.jquery.com/view/trunk/plugins/autocomplete/demo/main.css" type="text/css" />
  <link rel="stylesheet" href="http://dev.jquery.com/view/trunk/plugins/autocomplete/jquery.autocomplete.css" type="text/css" />
  <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/lib/jquery.bgiframe.min.js"></script>
  <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/lib/jquery.dimensions.js"></script>
  <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/jquery.autocomplete.js"></script>
  <script>
  $(document).ready(function(){
    var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" ");
$("#example").autocomplete(data);
  });
  </script>

</head>
<body>
  API Reference: <input id="example" /> (try "C" or "E")
</body>
</html>

*但是,当我下载脚本等并在我的本地服务器上运行它(参见下面的代码)时,它不起作用并且它不会给我任何错误 该页面大约需要10秒才能加载(而不是<1秒)

自动填充功能在页面上不起作用,但其他所有功能都有效。

谁能告诉我我做错了什么?我有什么东西可以在本地或下载吗?

我很擅长这一点,谢谢你的耐心。

另外,我希望数据来自文件,而不是变量数据。

我也下载了名为“jquery-1.3.2.min.js”的文件并将其放在与其他脚本相同的目录中...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Page Language="C#"  %>
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
<meta content="es" http-equiv="Content-Language" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Search POL-POD</title>
    <style type="text/css">
        .tahoma_small {
            font-family: Tahoma;
            font-size: x-small;
        }
    </style>
         <script src="../autocomplete/jquery-latest.js"></script>
          <link rel="stylesheet" href="../autocomplete/jquery.autocomplete.css" type="text/css" />
          <script type="text/javascript" src="../autocomplete/jquery.autocomplete.js"></script>
          <script>
              $(document).ready(function() {
                  var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" ");
                  $("#txtfirst").autocomplete(data);
                  $("#txtsecond").autocomplete(data);
              });
          </script>



    </head>



    <body>

    <form id="form1" runat="server" enableviewstate="False" autocomplete="True">
        POL
        <asp:TextBox id="txtfirst" runat="server"></asp:TextBox>
    &nbsp; POD&nbsp;
        <asp:TextBox id="txtsecond" runat="server"></asp:TextBox>
    &nbsp;
        <asp:Button id="Button1" runat="server" Text="Button" />
        <br />

....etc 

3 个答案:

答案 0 :(得分:1)

首先要做的是在使用jquery的任何其他脚本文件之前将文件jquery-1.3.2.min.js包含到文档中,除非这是jquery-latest.js。

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>

您没有收到任何javascript错误?

答案 1 :(得分:1)

经过大量的测试/搜索,我找到了解决方案。

非常感谢您的帮助!

我在所有链接上取出了“ ../ ”:

所以:<script src="../autocomplete/jquery.autocomplete.js"></script>

现在是:<script src="autocomplete/jquery.autocomplete.js"></script>

所以这里是所有代码(你需要在“autocomplete”目录中提到的.js和.css文件才能工作)

我希望它有所帮助!

顺便说一句,我在变量“cities”中总共有1200个城市,而.aspx页面只有20Kb

我还测试了使用.csv文件导入数据,但是加载了几秒钟... .aspx页面中的值快速闪烁,页面仍然非常小(显然它不是好主意,如果你有几千个值)

       ...
    </style>

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

          <script>
              $(document).ready(function() {
                       //  datavalues is the array containing all the options...the .split(","); at the end means each option is separated by a comma,
                       var cities= "Madrid,Paris, Barcelona,Rome,London".split(",");
                       $("#txtfromcity").autocomplete(cities);
                       $("#txttocity").autocomplete(cities);
                  });
          </script>
</head>

<body>


<form id="form1" runat="server" enableviewstate="False" autocomplete="True">
 POL
 <asp:TextBox id="txtfromcity" runat="server"></asp:TextBox>
&nbsp; POD&nbsp;
 <asp:TextBox id="txttocity" runat="server"></asp:TextBox>
&nbsp;
 <asp:Button id="Button1" runat="server" Text="Button" />
...

答案 2 :(得分:0)

如上所述,请确保加载必要的JavaScript文件。由于您使用ASP.NET进行编码,因此您可能希望使用ResolveUrl来确保正确引用这些文件,而与请求的页面位置无关。

<script src="<%# ResolveUrl("~/autocomplete/jquery-latest.js") %>" type="text/javascript"></script>
<script src="<%# ResolveUrl("~/autocomplete/jquery.autocomplete.js") %>" type="text/javascript"></script>