javascript - rails : proper syntax for using a javascript function inside a rails view

标签 javascript ruby-on-rails syntax view

我试图在表单中使用一些javascript来从选择下拉框中获取值,并将其用于表单的另一部分。我无法弄清楚语法。

首先是 javascript 函数(我将其放在 View 的末尾):

<script type="text/javascript">
  function return_event_id()
  {
    var event_id = document.getElementById("event_id");
    return event_id.value;
  }
</script>

在 View 中,我有以下内容:

<%= select("discount_code", :event_id, events_ids_titles_hash, { :include_blank => true }) %>

如果我添加以下语句:

return_event_id

然后,我选择的下拉项将显示在表单上(尽管我也看到了“return_event_id”一词)。

如果我做这样的事情:

<% selected_event_id =  return_event_id %> 

我收到以下错误消息:未定义的局部变量或方法“return_event_id”

我正在寻找的是能够将 event_id 值存储在变量中。正确的语法是什么?

其他详细信息和对答案的评论:

1:是的,Ruby 代码 = 服务器,javascript 代码 = 客户端

2:将代码放入 application.js 之类的内容中会将其移出 view.erb 模块,但据我所知,它不会改变结果。

我知道 <% selected_event_id = return_event_id %> 不起作用,但我确实需要达到这样的程度:我可以以某种方式将 return_event_id 的输出传递回服务器,然后将其捕获到 Ruby 变量中,或者,是否有办法使用 javascript 函数输出来设置表单中的另一个元素。

最佳答案

对于初学者来说,最好将 JavaScript 与 View 分开:

将你的js写在一个单独的文件中,根据你的rails版本将其放在公共(public)或你的 Assets 目录中。 然后,如果您使用的是raila 3.1+,它将自动加载您的资源,如果低于3.1,请将以下内容添加到您的 View 中(在顶部)

<%= javascript_include_tag "my_javascript_filename" %>

从那里您可以创建一个返回到您的 Rails 应用程序的 Ajax 请求(这意味着编写 Controller 代码和处理此问题的路由)以获取您想要的项目列表:

http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/
我建议使用上述 URL 中的 getJSON 方法

关于javascript - rails : proper syntax for using a javascript function inside a rails view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11503867/

相关文章:

ruby-on-rails - Ruby 数据结构呈现某种 JSON 格式

ruby-on-rails - 为什么 Grails findOrSaveBy* 动态查找器不接受第二个参数进行创建?

javascript - JSLint 错误 : Unexpected '--'

c++ - 这属于什么 C++ 风格的语法

javascript - 如何在选项卡内容 Bootstrap 中设置固定的自动宽度?

javascript - 为 Accordion 打开所有/打印所有

javascript - 使用 Bootstrap Datepicker 选择星期日期范围和月份

javascript - 未捕获的类型错误 : Expecting a function in instanceof check

ruby-on-rails - 如何更新 RoR 模型的关联而不更新相应模型的属性

mysql - Ubuntu 上 MySQL 中的语法错误