我在raails中的form_tag和select_tag生成了以下
HTML:
<form accept-charset="UTF-8" action="/deployment_group/show_workflow_list" data-remote="true" id="show_workflow_list_form" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div> <select id="folder_name_foldernames" name="folder_name[foldernames]"> <option value="RISK_ODS" selected="selected">RISK_ODS</option> <option value="DETAIL_ADJUSTMENT">DETAIL_ADJUSTMENT</option> <option value="ODS_STAGE">ODS_STAGE</option> <option value="FINANCE_DM1">FINANCE_DM1</option> </select> </form>
让我知道我需要编写的JQuery代码,以便我可以在下拉列表中更改选择值时提交表单.请参阅here当我使用:onchange时,它是一个html选项,表单以html的形式提交,而不是作为JS表单提交.所以,我不能使用:onchange.
我明白我需要在application.js文件中写这样的东西:
$(#folder_name_foldernames).change(function(){ $(#show_workflow_list).submit() });
我在application.js文件中使用了上面的代码
但我必须删除“require_tree”.因为我得到一些错误
所以我补充道
$('#folder_name_foldernames').change = () -> $('#show_workflow_list_form').submit()
到我的deployment_group.js.coffee文件(deployment_group是我的控制器与上面的视图相关)
但是当我在下拉菜单中更改选择时,我仍然没有看到任何变化.
请帮忙.
解决方法
我通过以下方式解决了问题:
<%= f.select :foldernames,options_for_select(@folders,@folders.first),{},{:onchange=>"myfunc()"}%>
我补充道
<script type="text/javascript"> function myfunc() { $('#folder_name_foldernames').change(function(){ $('#this_form').submit(); }); } </script>
并且表单以JS而不是HTML的形式提交.如果有人可以解释为什么这是以JS而不是HTML的形式提交,那将会非常有帮助我写的时代码相同:onchange => this.form.submit,以HTML格式提交