【发布时间】:2012-09-24 10:14:23
【问题描述】:
我有一个使用 HTML 选择标签的简单下拉菜单。 select标签的代码变成:
<select name="menu_id" id="menu_id">
<option selected="selected" value="1">Dinner</option>
<option value="2">Lunch</option>
</select>
在我的 menu.js.coffee 文件中,我有:
$("select#menu_id").change(-> $(this).closest("form").submit())
这变成了 menu.js:
(function() {
$("select#menu_id").change(function() {
return $(this).closest("form").submit();
});
}).call(this);
问题是更改选择菜单不提交表单!它甚至没有输入上面的 menu.js 代码(我在那里放置了断点,并且在选择菜单选项后它永远不会进入)。
如果我只是复制上述(function() { 的内部内容,然后将其粘贴到 Firebug 或 Chrome 控制台中,那么它会按预期运行并且更改菜单实际上会提交表单。那么我应该如何在rails中编写coffeescript代码以允许在选择菜单更改时提交表单?
我使用的是 Rails 3.2.8。
【问题讨论】:
-
您是否尝试过将代码放入
$(document).ready () ->块中? -
@DaveTsunami - 这就是问题所在!我曾假设 .js.coffee 文件中的任何内容都会在页面加载后加载。所以代码正在运行,但
select#menu_id还不存在。将您的评论放入答案中,我会给您信用。
标签: javascript jquery ruby-on-rails ruby-on-rails-3 html