使用jquery&;在页面准备就绪后生成输入时,ajax会自动完成

使用jquery&;在页面准备就绪后生成输入时,ajax会自动完成,jquery,ajax,autocomplete,Jquery,Ajax,Autocomplete,我在论坛上搜索了这个,我发现了这个:还有这个: 但每一次,它都是文档准备功能,而我的是键控功能。我认为这会有所不同 情况是这样的:我有这些函数来处理自动完成输入。它使用jQuery和Ajax: var truid = ""; $(function(){ $(".autocomp").keyup(function() { var realid = $(this).attr('id'); var searchid = $(this).val();

我在论坛上搜索了这个,我发现了这个:还有这个:

但每一次,它都是文档准备功能,而我的是键控功能。我认为这会有所不同

情况是这样的:我有这些函数来处理自动完成输入。它使用jQuery和Ajax:

var truid = "";

$(function(){
    $(".autocomp").keyup(function() {
        var realid = $(this).attr('id');
        var searchid = $(this).val();
        var dataString = 'search=' + searchid;

        if(searchid != '') {
            $.ajax({
                type: "POST",
                url: "ajax_complete.php",
                data: dataString,
                cache: false,
                success: function(html) {
                    $("#result_"+realid).html(html).show();
                    truid=realid;
                }
            });
        }
        return false;    
    });

    $(".autoresult").on("click",function(e) {
        var $clicked = $(e.target);
        var $name = $clicked.find('.name').html();
        var $id = $clicked.find('.auto_id').text();
        var decoded = $("<div/>").html($name).text();
        $('#' + truid).val(decoded);
        $('#' + truid + "_true").val($id);
    });

    $(document).on("click", function(e) { 
        var $clicked = $(e.target);
        if (! $clicked.hasClass("autocomp")) {
            $("#result_" + truid).fadeOut(); 
        }
    });

    $('.autocomp').click(function() {
        truid = $(this).attr('id');
        $("#result_" + truid).fadeIn();
    });
});
var truid=”“;
$(函数(){
$(“.autocomp”).keyup(函数(){
var realid=$(this.attr('id');
var searchid=$(this.val();
var dataString='search='+searchid;
如果(搜索ID!=''){
$.ajax({
类型:“POST”,
url:“ajax_complete.php”,
数据:dataString,
cache:false,
成功:函数(html){
$(“#结果"+realid).html(html).show();
truid=realid;
}
});
}
返回false;
});
$(“.autoresult”)。在(“单击”上,函数(e){
var$clicked=$(e.target);
var$name=$clicked.find('.name').html();
var$id=$clicked.find('.auto_id').text();
var decoded=$(“”).html($name).text();
$('#'+truid).val(已解码);
$('#'+truid+“_-true”).val($id);
});
$(文件)。点击按钮,功能(e){
var$clicked=$(e.target);
如果(!$clicked.hasClass(“autocomp”)){
$(“#结果”+truid).fadeOut();
}
});
$('.autocomp')。单击(函数(){
truid=$(this.attr('id');
$(“#结果”+truid).fadeIn();
});
});
我通常使用此输入来使用此自动完成功能:

<input type="text" class="autocomp" id="uniqueid" />
<input type="hidden" id="uniqueid_true" name="uniqueid" />
<div class="autoresult" id="result_uniqueid"></div>

当我在文档准备就绪时将这段代码直接放入html中时,它工作得很好

但是当我在ajax中生成这些输入时,自动完成就不起作用了,当我提出建议时,什么也不会发生


如何使其工作?

键控功能执行相同的操作您对
单击所做的操作-功能:

而不是…:

$(".autocomp").keyup(function() { [...] });
写…:

$(".autocomp").on("keyup", function() { [...] });

不幸的是,这不是工作。。。它仍然是一样的:使用DOM就绪输入,而不是使用创建的ajax。。。