使用ajax自动完成

时间:2014-07-08 18:02:37

标签: php ajax

也许你可以帮助解决一些ajax问题。

我有自动完成代码 - 我输入城市名称,代码自动为我完成,并获取城市ID,并且应该放入隐藏的输入字段(name =' cityID' )......但它没有那样做。

你能告诉我为什么吗?

html代码:

<p><label>city: </label><input type='text' name='cityName' value='$cityName'  id='keyword_city' autocomplete='off' />
    <span id='ajax_response_city' class='ajax_response' style='display:none;' ></span>
    <input type='hidden' name='cityID' value='$cityID' id='keyword_cityID'>
</p>

服务器端(仅输出):

echo '<li><a href=\'javascript:void(0);\' data-id="'.$row['cityID'].'">'.$final.'</a></li>';

脚本:

$("#ajax_response_city").mouseover(function(){
    $(this).find("li a").mouseover(function () {
          $(this).addClass("selected");
    });
    $(this).find("li a").mouseout(function () {
          $(this).removeClass("selected");
    });
    $(this).find("li a").click(function () {
          $("#keyword_city").val($(this).text());
          $("#keyword_cityID").val($(this).data().id);
          $("#ajax_response_city").fadeOut("slow");
    });
});

你可以在这里找到完整的JS:

http://www.dogger.co.il/js/ajax/autoComplate_city.js

1 个答案:

答案 0 :(得分:0)

尝试为ajax_response_city使用div而不是span标记。 html搞砸了,你的选择再也不起作用了。

我把一个例子放在一起:http://jsfiddle.net/me2loveit2/86T4f/

<div id='ajax_response_city' class='ajax_response'></div>

我也会开始使用正确的html(比如在ul或ol中放置li元素)以避免这样的问题。