【问题标题】:autocomplete not working with ajax generated textbox自动完成不适用于 ajax 生成的文本框
【发布时间】:2011-05-20 06:45:09
【问题描述】:

在我的页面中,我使用 ajax 在按钮单击后生成/显示文本框。我在这个文本框中使用了自动完成功能,但自动完成调用没有触发。当我尝试在文本框中输入任何内容时,我在 firebug 中看不到自动完成调用。

但同时它在具有文本框(没有 ajax 生成)的普通测试页面中工作正常,这意味着 jQuery,自动完成文件是可以的。

我怀疑应该以不同的方式在自动完成功能中调用 ajax 生成的文本框的 ID。我在下面附上了我尝试过的方法。

<script>
    $(function(){  
        $("#orderingparty2").autocomplete("auto/findparty.cfm");
    })
</script>

【问题讨论】:

    标签: jquery ajax autocomplete


    【解决方案1】:

    将添加自动完成的代码绑定到生成输入框的ajax函数。否则,您可以在任何事件(如 onclick)上触发 autcomplete 事件。

    $("#orderingparty2").live('click',function(event) 
    {
    
    $(this).autocomplete("auto/findparty.cfm");
    
    
    });
    

    【讨论】:

    • 嗨,阿卜杜勒,我得到了 livequery 文件,是否需要将其包含在我的页面中才会生效?
    • 将其包含在您的 html 中。并将 livequery 替换为 livequery $("#orderingparty2").livequery('click',function(event) { $(this).autocomplete("auto/findparty.cfm"); });
    【解决方案2】:

    您必须在附加文本框的 ajax 处理程序中附加自动完成调用,如下所示:

    $.ajax({  
       ... 
       success(function(...) {
          $('<input type="text">')             
             .attr(...)
             .css(...)
             .appendTo('#myForm')
             .autocomplete("auto/findparty.cfm");  
       })
       ...
    });
    

    【讨论】:

    • 我已经像这样初始化了自动完成插件.... $("#PaymentIn").load('/Bank/_PaymentIn/', function () { $(this).find(' #ChequeNo').autocomplete(); }); $("input#ChequeNo").autocomplete({...但它不起作用
    猜你喜欢
    • 2014-06-19
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多