erb代码在javascript中不起作用<;脚本>;标签
我有一个带有标题和内容属性的Post表。我想使自动完成的文本字段,其中用户是建议的职位标题。我正在尝试添加我的rails应用程序。我正在这样做 控制器(在数组中添加帖子标题)-erb代码在javascript中不起作用<;脚本>;标签,javascript,ruby-on-rails,ruby-on-rails-3,erb,Javascript,Ruby On Rails,Ruby On Rails 3,Erb,我有一个带有标题和内容属性的Post表。我想使自动完成的文本字段,其中用户是建议的职位标题。我正在尝试添加我的rails应用程序。我正在这样做 控制器(在数组中添加帖子标题)- @postitle=[] Post.all.each do | g| @posttitle“标签”%> $(函数(){ var availableTags=; $(“#标记”).autocomplete({ 资料来源:availableTags }); }); 但它没有显示任何建议(自动完成不起作用)。我不知道出了什么
@postitle=[]
Post.all.each do | g|
@posttitle“标签”%>
$(函数(){
var availableTags=;
$(“#标记”).autocomplete({
资料来源:availableTags
});
});
但它没有显示任何建议(自动完成不起作用)。我不知道出了什么问题。请帮忙也许这个铁路司机能帮你
我认为不应该在javascript中使用ruby数组。它不会作为数组进行计算。相反,您可以创建javascript数组并将其用作
<script>
$(function() {
var availableTags = new Array();
<% @posttitle.each do |post| %>
availableTags.push(<%= post %>);
<% end %>
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
$(函数(){
var availableTags=新数组();
availableTags.push();
$(“#标记”).autocomplete({
资料来源:availableTags
});
});
您是否尝试过类似的方法:
<script>
var availableTags = <%= raw @posttitle %>;
$(function() {
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
var availableTags=;
$(函数(){
$(“#标记”).autocomplete({
资料来源:availableTags
});
});
如果希望Ruby中的项目数组显示为javascript数组,则需要:
1) 将其放入以逗号分隔的值列表中
2) 将每个值用引号括起来
3) 转义该值,以便引号不会导致javascript错误
如果您只想要标题:
控制器:
@titles = Post.pluck(:title)
在你看来:
<script>
$(function() {
var availableTags = [<%= @titles.map{|title| escape_javascript(title)}.join(", ") %>];
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
$(函数(){
var availableTags=[];
$(“#标记”).autocomplete({
资料来源:availableTags
});
});
我认为不应该在javascript中使用ruby数组。它不会作为数组计算。@ManojMonga我想你是对的再次感谢你的贡献,但仍然不起作用:(@posttitle
是一个数组如果我在我的html中像这样放置
,那么它会像这样显示数组。[code>[“xyz”,“wxt”,“etc”]你能试着编辑第一行说$(document).准备好了吗(函数(){问题不在于$(document).ready(function(){
这个。当我把像var availableTags=[“ActionScript”,“AppleScript”,“Asp”,“BASIC”,“C”,“C++”,“Clojure”,“COBOL”,“ColdFusion”,“Erlang”,“Fortran”,“Groovy”,“Haskell”,“Java”,“JavaScript”,“Lisp”,“Perl”,“PHP”,“Python”,“Ruby”,“Scala”,“Scheme”]
。我试过这样做,不工作自动完成函数不工作。它没有显示任何建议。我试过这样做。$(function(){var availableTags=[];$('#tags')。focus(function(){alert('hi');});})
出于测试目的,但警报框未显示意味着第1行未正确执行…我认为这不需要自己的答案,也许在编写时这是不可能的,但另一种方法是使用json,所以:var availableTags=
我试图这样放置$(function(){var availableTags=new Array();availableTags.push();$('#tags').focus(function(){alert('hi');});
但未显示警报框。这意味着var availableTags…
该行有错误
@titles = Post.pluck(:title)
<script>
$(function() {
var availableTags = [<%= @titles.map{|title| escape_javascript(title)}.join(", ") %>];
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>