Jquery自动填充文本字段问题

时间:2013-10-28 15:07:19

标签: jquery ajax autocomplete jquery-autocomplete

这是this thread(change text value by clicking drop down list)的后续内容 在这个问题得到解决的地方,我的脚本没有用,所以我会更深入。

HTML

<li><input type="text" id="location"></li>
<div id="locationselect"></div>

用户开始在文本输入id =“location”中键入其位置,AJAX用于返回以用户输入开头的位置列表。 (例如,“Lon”将返回伦敦,Long Eaton等,并将结果返回 作为无序列表)

JQuery/AJAX Code

getlocations.php

<?php

    if ($location == '') {echo "";}
    else {
        echo "<ul>";
        while($location = mysql_fetch_assoc($result)){
        echo "<li>". $location['location'] ."</li>";
        }
        echo "</ul>";
    }
?>

这一切都很棒!!! 我在输入用户输入时得到了位置的下拉列表,因此AJAX部分正在运行。

我现在遇到的问题是...... 当您键入字母HOWEVER

时,它会显示一个位置列表
$('#locationselect li').click(function() {
    $('#location').val($(this).text());
});

单击列表项时,似乎不会自动填充 id =“location”输入文本字段。 getlocations.php文件中是否缺少某些内容?

真的很困惑,为新线程道歉,但最后在技术上得到回答=)感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么在任何可用之前,你将click事件绑定到#locationselect下的任何li。 在li元素加载并在ajax调用中呈现之后,应该绑定click事件。试试这个:

$('document').ready(function(){
$('#location').keyup(function() {
    if ($('#location').length == 0) {
        $('#locationselect').hide();
    }
    $('#locationselect').html("");
    var location = $('#location').val();
    location = $.trim(location);
    $.ajax({
        type:"post",
        url:"getlocations.php",
        data:"location="+location,
        success:function(data){
            $("#locationselect").html(data);
            $('#locationselect li').click(function() {
                $('#location').val($(this).text());
            });
        }
    });
});
});