jQuery自定义自动完成

时间:2015-09-17 23:23:26

标签: javascript jquery html html5

我正在尝试为我的数据库中列出的国家/地区制作自动填充建议。我设法得到列表,我正在尝试绑定每个国家/地区的条目的点击事件。虽然我认为这是做到这一点的方法,但代码总是使用最后一项的值并将其放在输入字段

Suggestions是我的自动填充容器,我要更新的文本字段是box

$('#box').on('input', function (){
   var typedLocation = { 'location' : $(this).val() };
   var key;

   $.post( "/suggestions.php", typedLocation, function( data ) {

       $('#Suggestions').html('').show();
       for (key in data) {
            $('#Suggestions').append('<div id="suggest' + key + '" >' + data[key] + '</div>');

            $('#Suggestions').find('#suggest' + key).click(function (){
                $('#Suggestions').hide();
                $('#box').val(data[key]);
            });
       } 
   });
});

1 个答案:

答案 0 :(得分:1)

我没有使用变量来设置输入字段的值,而是在点击功能中使用了$(this).html()

采用Joe的例子(因为它似乎更优雅):

var $elem = $('<div>' + data[key] + '</div>');

$elem.click(function () {
            $('#Suggestions').hide();
            $('#box').val($(this).html());
        });
$('#Suggestions').append($elem);