Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
erb代码在javascript中不起作用<;脚本>;标签_Javascript_Ruby On Rails_Ruby On Rails 3_Erb - Fatal编程技术网

erb代码在javascript中不起作用<;脚本>;标签

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 }); }); 但它没有显示任何建议(自动完成不起作用)。我不知道出了什么

我有一个带有标题和内容属性的Post表。我想使自动完成的文本字段,其中用户是建议的职位标题。我正在尝试添加我的rails应用程序。我正在这样做

控制器(在数组中添加帖子标题)-

@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>