2012-04-17 64 views
0

由默认功能状况:预填充的jQuery自动完成数据

<script> 
    $(function() { 
     var availableTags = [ 
      "ActionScript", 
      "AppleScript", 
      "Asp", 
      "BASIC", 
      "Scheme" 
     ]; 
     $("#tags").autocomplete({ 
      source: availableTags 
     }); 
    }); 
</script> 

<div class="ui-widget"> 
    <label for="tags">Tags: </label> 
    <input id="tags" /> 
</div> 

我想知道如何通过从Java,而不是手动键入出每个标签的String数组预填充availabletags?所以,当我输入时,它提示了一系列事物。

+0

自从我研究过Java,Mike已经有一段时间了,但我相信这个概念是你应该构建数组并将其打印回标记右侧,其中'availableTags'就是它的位置(或者它被定义的位置,相当)。然后,当页面建立时,JavaScript应该有它所需要的。查看源代码以确定它是否成功。 – veeTrain 2012-04-17 11:56:32

+0

@veeTrain本应该是一个答案,而不是 – Joseph 2012-04-17 11:59:02

+0

迈克,你有没有通过其中一个答案找到你的解决方案,或者你的问题仍然没有解决? – veeTrain 2012-04-18 17:51:58

回答

0

我相信这个概念是你应该建立数组并将其回显/打印到你的标记中,其中availableTags是(或者它被定义的地方)。然后,当页面建立时,JavaScript应该有它所需要的。

查看源代码以确定它是否成功。

var availableTags = [ /* output a comma-separated and quoted list */ ]; 

对不起,我不确定语法,但我相信这是你应该采取的方法。

编辑:这个anonymous person认为你可能需要使用javascript eval()才能使它适合JavaScript。 (但它在下面的评论中被劝阻)

编辑:这里是another Stack Overflow post问一个类似的问题,可能会帮助你。和another

This也似乎是可以帮助你的东西。

+0

不需要使用eval(),eval是邪恶的。 – primavera133 2012-04-17 14:00:32

0

将javascript写入选择的模板文件(JSP,Freemarker等)。

或者只是在模板文件中写入availableTags变量,如果您想要将其余的javascript保留在外部文件中。确保正确命名空间,而不是污染全局命名空间。