我正在尝试在表单中使用一些 javascript 从选择下拉框中获取值,并在表单的另一部分使用它。我无法弄清楚语法。
首先是 javascript 函数(我将其放在视图的末尾):
<script type="text/javascript">
function return_event_id()
{
var event_id = document.getElementById("event_id");
return event_id.value;
}
</script>
在视图内部,我有以下内容:
<%= 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 函数输出来设置表单中另一个元素的方法。