我有一个简单的下拉菜单,使用HTML的select标签。 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。
答案 0 :(得分:2)
尝试将代码放在$(document).ready () ->
块中。
$(document).ready () ->
$("select#menu_id").change(-> $(this).closest("form").submit())
答案 1 :(得分:0)
document.ready函数仅在发生页面重新加载时使用。 您可以使用单独的功能并使用onchange调用。
示例:
<select name="menu_id" id="menu_id" onchange="callThisFunction()">
<option selected="selected" value="1">Dinner</option>
<option value="2">Lunch</option>
</select>
<form name="myform"></form>
function callThisFunction()
{
document.forms["myform"].submit();
}