2011-11-03 88 views
0

我将以下方法连接到我的document.ready函数。然而,“myAutoCompleteURL.aspx”URL永远不会被访问(我在页面上有一个断点,它从来没有被击中)。为什么这个JqueryUI自动完成不会打到它的URL?

有人知道为什么这不起作用吗?我是新的UI版本的自动完成;我以前只使用基于jquery(已弃用)的版本。

function myAutoComplete(myTextBox, myLabel, myHidden) { 
    var myType = $(myLabel).html(); 

    $(myTextBox).autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       type: 'POST', 
       dataType: 'json', 
       url: "../myAutoCompleteURL.aspx", 
       data: { q: request.term, type: myType }, 
       success: function (myData) { 
        response($.map(myData, function (myItem) { 
         return { label: myItem.name, value: myItem.name, id: myItem.id } 
        })); 
       } 
      }); 
     }, 
     select: function (event, ui) { 
      $(myTextBox).val(ui.myItem.name); 
      $(myHidden).val(ui.myItem.id); 
      return false; 
     } 
    }); 
} 
+0

你可以发布一个链接到一个工作版本? –

+0

这个'$ .ajax()'调用是否在自动完成的上下文之外工作?试着把它放在一个页面上并传入固定值,看看是否有效。例如,我相信你可能需要使用'application/json'的数据类型,并使用引用的JSON字符串代替数据。 – GregL

+0

我可以看到我的应用程序加载这个URL:“/FileNotFound.htm?aspxerrorpath=/script/jquery/indicator.gif”。什么是indicator.gif?一个jquery文件?看来我使用的是jqueryui的错误版本。 – WEFX

回答

0

使用Firebug并查找正在被命中的URL。如果在控制台中什么都没有显示,那么javascript代码根本不起作用。

+0

我的CSS代码有问题。感谢您提供Firebug。 – WEFX

1

您可以删除您的网址中的../。我以前有过同样的问题。

其次在你的ajax调用中有一个错误函数。如果它遇到了错误函数,那么在你的数据中有一些问题,你需要纠正它。

由于@GregL在他的评论中提到,您使用JSON,而不是应用程序/ JSON :)

相关问题