2011-04-24 103 views
0

我试图让jQuery UI自动填充小部件工作,但我有一些问题。
首先,我尝试从数据库中检索一些数据,并将它们存储在隐藏的<p>标记中,格式为:item1 ; item2; item3;,然后使用jQuery引用此标记并使用.html()(结果为空)或.text()(结果为空字符串)。然后,我决定做这一切的本地jQuery的块中,做了以下内容:jQuery UI自动完成问题

var tags = "house ; children's room ; master bedroom ... etc" 
    alert(tags); //returns them in the right format 
    var availableTags = tags.split(' ;'); 
    alert(availableTags); //returns them in the form" item1, item2, item3 
    alert(availableTags[1]); //returns children's room 
    $(".liTagInput").autocomplete({ 
     minLength: 2, 
     source: availableTags 
    }); 

但仍然没有得到自动完成工作...为什么不工作?我确定我也添加了CSS,所以不应该是这个问题...

理论上,我仍然想从数据库中检索数据。在这种情况下,我只想将标签回显到html页面,然后按照开头所述进行操作。在其他情况下,结果可能太大,我想通过AJAX获得它们,但那是另一个故事......我需要先让它工作,然后再担心更复杂的场景:)

任何帮助,非常感谢!

回答

1

您的演示工作原理编码这里:http://jsfiddle.net/aXuHq/

一些其他提示:

  • 你检查你追加项目,以确保内容是你所期望的隐藏的元素?
  • 您也可以将echo标签转换为JavaScript数组(不确定您使用哪种服务器端技术,因此我将无法提供示例),并将其直接传递给自动完成。
  • 在自动完成的情况下使用AJAX并不算太坏,请查看demo
+0

我刚刚弄明白了。问题是因为自动完成正在DOM上尚未提供的元素上调用。我将上面的代码添加到'show()'函数的回调函数中,这使得'向导页'出现并解决了问题... :) – Kassem 2011-04-24 13:12:49