0

大家好,我正在尝试编写一个标题匹配器,我得到了它的工作,但是当一个 ajax 调用它不再工作下面是我的代码:

 <script type="text/javascript" src="jquery.autocomplete.js"></script>
    <link rel="stylesheet" type="text/css" href="jquery.autocomplete.css" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

   $(document).ready(function() 
            {
                $(".course").autocomplete("look_me_up.php", 
                    {
                        width: 260,
                        matchContains: true,
                        mustMatch: true,
                        selectFirst: false
                    });

                $(".course").result(function(event, data, formatted)
                    {
                          $(this).next(".course_val").val(data[1]);
                    });
            });

我要更新的文本框是从首先发出的 ajax 请求中调用的:

<input type="text" name="course" id="text1" value="Find Title In DB" class="course">
<input type="hidden" id="val1" class="course_val">

ajax 请求是:

function checks()
            {

            $.ajax({
                type : "POST",
                url : "get_data.php",
                data : "function="+"get_text",
                success : function(msg) 
                    {
                       $(update_me).html(msg);
                    }
                });
            }

我假设 jquery 正在起作用,因为它试图更新从 ajax 请求中提取的值?我正在努力让它工作,所以任何帮助将不胜感激。

4

2 回答 2

1

它看起来是动态元素创建的问题。

您已经加载了一些course元素并在它们上初始化了自动完成功能,后来您似乎正在用新元素替换这些元素。在这里,您没有为新元素初始化自动完成。

解决方案是为动态添加的元素初始化自动完成

function createCourse(els){
    els.autocomplete("look_me_up.php", {
        width: 260,
        matchContains: true,
        mustMatch: true,
        selectFirst: false
    });

    els.result(function(event, data, formatted){
        $(this).next(".course_val").val(data[1]);
    });
}

$(document).ready(function() {
    createCourse($(".course"))
});

function checks() {
    $.ajax({
        type : "POST",
        url : "get_data.php",
        data : "function="+"get_text",
        success : function(msg)  {
            $(update_me).html(msg);
            createCourse($(".course", update_me))
        }
    });
}
于 2013-05-15T08:58:27.677 回答
0

改变

$(document).ready(function()

$(document).ajaxComplete(function()

和宾果游戏:)

于 2015-12-14T20:08:27.747 回答