2011-10-05 65 views
1

我想在隐藏的div内的文本字段上使用jQuery的自动完成功能。虽然输入字段获得了ui-autocomplete输入类,但它似乎不起作用。这就像任何事件都不受我的意见。如何在隐藏的输入字段上使用jQuery.autocomplete(type =“text”)?

只要是明确的,代码如下:

<a href="#overlay" class="open-the-overlay-that-has-the-id-like-this-href-attribute">OPEN</a> 

<div id="overlay" style="display:none"> 
    <form action="/action" method="post"> 
     <input type="text" id="my-unique-id" /> 
     <input type="submit" /> 
    </form> 
</div> 

<script type="text/javascript"> 
$(document).ready(function(){ 

    $("#my-unique-id").autocomplete({ 
     source: "search.php", 
     minLength: 2 
    }); 

}); 
</script> 

在此之后,#我的唯一-ID涨幅UI的自动完成输入级,但没有必然的事件。 任何想法?

这里是服务器端脚本,但它是没有错的,因为在另一场正常工作:

(CakePHP的)

function getCity() { 

    $this->layout = FALSE; 
    $this->autoRender = FALSE; 
    Configure::write("debug",0); 

    if(isset($_GET["term"]) && !empty($_GET["term"])) { 
     AppModel::unbind($this->City); 
     preg_match_all("/(\w+)/",urldecode($_GET["term"]), $term); 
     $or = array(); 
     foreach ($term[0] as $t) { 
      if(strtolower($t) != "jud") 
      $or[] = "City.name LIKE '%$t%'"; // OR City.county LIKE '%$t%' 
     } 
     $or = implode(" OR ", $or); 
     $cities = $this->City->find("all", array("limit"=>30, "fields"=>array("City.id", "City.name", "City.county"),"conditions"=>array($or))); 
     $returnArray = array(); 
     $k = 0; 
     foreach($cities as $c) { 
      $returnArray[$k]['id'] = $c["City"]["id"]; 
      $returnArray[$k]['label'] = $c["City"]["name"].", jud. ".$c["City"]["county"]; 
      $returnArray[$k]['value'] = $c["City"]["name"].", jud. ".$c["City"]["county"]; 
      $k++; 
     } 
     return json_encode($returnArray); 
    } 
} 

回答

0

你的代码是正确的,什么可能是错误的是你的服务器端脚本没有返回数据,所以它看起来像什么都没有发生。你可以发布你的服务器端脚本吗?

您也可以尝试与本地数据源:

var availableTags = [ 
     "ActionScript", 
     "AppleScript", 
     "Asp", 
     "BASIC", 
     "C", 
     "C++", 
     "Clojure", 
     "COBOL", 
     "ColdFusion", 
     "Erlang", 
     "Fortran", 
     "Groovy", 
     "Haskell", 
     "Java", 
     "JavaScript", 
     "Lisp", 
     "Perl", 
     "PHP", 
     "Python", 
     "Ruby", 
     "Scala", 
     "Scheme" 
    ]; 

$("#my-unique-id").autocomplete({ 
     source: availableTags , 
     minLength: 2 
    }); 
+0

服务器端工作正常。无法使用本地数据源,因为我在数据库中有大约14000个条目。所以这不是一个选择! –

+0

@Lucian - 我认为尼古拉意味着你使用本地数据源来测试自动完成功能... –

+0

@ElRonnoco - 同样的问题 –