jQuery 中的自动完成功能只是...停止工作?

Posted

技术标签:

【中文标题】jQuery 中的自动完成功能只是...停止工作?【英文标题】:Autocomplete in jQuery just...stopped working? 【发布时间】:2011-08-25 04:26:14 【问题描述】:

当我莫名其妙地完全停止运行时,我让 jQuery 自动完成功能与 CodeIngiter 完美配合。当我访问自动完成控制器时,我仍然看到正确的数组 - javascript 只是没有返回 JSON 数据。奇怪的是它工作正常,然后突然停止工作。

这是我的 Javascript:

$( "#clubs-complete" ).autocomplete(
    source: function(request, response) 
        $.ajax(
            url: 'http://www.myurl.com/create/autocomplete',
            data: 'term='+$("#clubs-complete").val(),
            dataType: "json",
            type: "POST",
            success: function(data)
                alert(data);
                response(data);
            
    );
,
minLength: 1
);

这是我的控制器:

public function autocomplete()

    // Search term from jQuery
    $term = $this->input->post('term');

$this->db->select('name','address2');
$this->db->from('clubs');
$this->db->like('name', $term);
$suggestions = $this->db->get()->result();

if (count($suggestions) > 0) 
    $data = array();

    foreach ($suggestions as $suggestion) 
        array_push($data, $suggestion->name);
    

        // Return data
        echo json_encode($data);




有人知道发生了什么吗? javascript 函数中的警报现在什么都不返回,以前也是。当我直接访问 URL 时,我仍然可以看到完整的数组。

请帮忙,我正在扯头发。

【问题讨论】:

是否有任何变化在您的控制范围内(jQuery 版本等)或可能超出您的控制范围? (网络服务器更改)? 使用 firebug for firefox 来调试这个 不幸的是,什么都没有改变......它正在工作,然后它没有,而我正在编辑代码的另一部分。当我在 SVN 中恢复时 - 没有任何变化。 【参考方案1】:

在 IE 中,如果您按 F12,则有 developer tools 可用。 Firefox 中有类似的东西叫做Firebug。在其中任何一个中,您都可以调试浏览器内的 javascript。在源 fn 和成功函数中设置断点,它可能会给你一些见解。

您可能还想获得一个 http 调试代理,例如 Fiddler2 或 Charles,它可以让您看到传出的 HTTP 请求及其相应的响应。 Fiddler2 在 Windows 上运行,可与 FF 和 IE 以及几乎所有其他 http 客户端一起使用。这将让您看到您的 AJAX 服务返回到浏览器内 javascript 的消息。

这些东西应该能让你深入了解“不工作”的问题。

【讨论】:

以上是关于jQuery 中的自动完成功能只是...停止工作?的主要内容,如果未能解决你的问题,请参考以下文章

WINdows10/Chrome 中的 Jquery 自动完成功能

知道为啥这个 Jquery 自动完成功能不起作用吗?

自动完成“不是功能”

Xcode 停止自动完成,UIKit 类不可用

Jquery UI和Bootstrap JS冲突使Autocomplete停止工作

手动触发 jQuery 自动完成