如何从Rails中的不同文件使用我的javascript函数

如何从Rails中的不同文件使用我的javascript函数,javascript,ruby-on-rails,input,Javascript,Ruby On Rails,Input,我的资产树中有一个javascript函数。它接受用户的输入,然后根据该输入过滤数据表。但是,我无法从我的asset/javascript管道在index.html.erb文件中使用它。我可以把函数放在index.html.erb页面的脚本标记中,它会工作的。我还可以在javascript文件中放置一个警报(“测试”),它将在index.html.erb中工作。谁能看一下,告诉我我丢了什么 // # Place all the behaviors and hooks related to the

我的资产树中有一个javascript函数。它接受用户的输入,然后根据该输入过滤数据表。但是,我无法从我的asset/javascript管道在index.html.erb文件中使用它。我可以把函数放在index.html.erb页面的脚本标记中,它会工作的。我还可以在javascript文件中放置一个警报(“测试”),它将在index.html.erb中工作。谁能看一下,告诉我我丢了什么

// # Place all the behaviors and hooks related to the matching controller here.
$('document').ready(function(){
  var stateInput, stateFilter, table, tr, td, i;
  stateInput = document.getElementById("stateInput");
  stateFilter = stateInput.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");

 // Loop through all table rows, and hide those who don't match the search query
  function stateSearch() {
    for (i = 0; i < tr.length; i++) {
      td = tr[i].getElementsByTagName("td")[0];
      if (td) {
        if (td.innerHTML.toUpperCase().indexOf(stateFilter) > -1) {
          tr[i].style.display = "";
        } else {
          tr[i].style.display = "none";
        }
      }
    }
  }
}); 
/#将与匹配控制器相关的所有行为和挂钩放在此处。
$('document').ready(函数(){
var stateInput、stateFilter、table、tr、td、i;
stateInput=document.getElementById(“stateInput”);
stateFilter=stateInput.value.toUpperCase();
table=document.getElementById(“myTable”);
tr=table.getElementsByTagName(“tr”);
//循环遍历所有表行,并隐藏与搜索查询不匹配的行
函数stateSearch(){
对于(i=0;i-1){
tr[i].style.display=“”;
}否则{
tr[i].style.display=“无”;
}
}
}
}
}); 
这是我的index.html.erb。我只包含输入标记,因为我假设它是您所需要的全部

<input id="stateInput" type="textbox" placeholder="State ID ex. IN" onkeyup="stateSearch()">

尝试以下方法:

(函数($){
stateSearch=函数(){
警报(“调用stateSearch”);
//把你的逻辑写在这里
}
})(jQuery);
$('document').ready(函数(){
var myTextBox=$(“#状态输入”);
myTextBox.on('change',function()){
stateSearch();
});
});


是的,每次我在搜索框中输入内容时都会发出警报。我想我可以从这里找到解决办法。谢谢Jiggnesh!此外,您的实现还使用低级JS构造。如果您使用jQuery,那么您应该使用它的API来查找元素、过滤器等。我不是JS专家,但我认为在您的原始版本中,您在
ready
函数中定义了该函数,因此从未发现该函数可用。您应该密切关注浏览器的开发者控制台,查看与JS相关的任何错误。