Jquery RubyonRails:根据选择框中的更改以JS形式提交表单
我在Rails中通过Jquery RubyonRails:根据选择框中的更改以JS形式提交表单,jquery,ruby-on-rails,ruby-on-rails-3,Jquery,Ruby On Rails,Ruby On Rails 3,我在Rails中通过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=
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>
我在application.js文件中使用了上述代码
但我必须删除“require_tree”,因为我遇到了一些错误
所以我补充说
$('#folder_name_foldernames').change = () ->
$('#show_workflow_list_form').submit()
到my deployment_group.js.coffee文件(deployment_group是与上述视图相关的我的控制器)
但是当我在下拉列表中更改选择时,我仍然看不到任何更改。
请帮助。如果您为您的
标签提供id
,您可以在那里使用id
比如:
别忘了用引号将选择器括起来,否则会出现JavaScript错误。尝试用“application.js.coffee”替换“application.js”,并在文件中添加
#=require_self
。我通过以下方式解决了此问题:
<%= f.select :foldernames, options_for_select(@folders, @folders.first), {}, {:onchange=>"myfunc()"}%>
“myfunc()”}%>
我补充说
<script type="text/javascript">
function myfunc()
{
$('#folder_name_foldernames').change(function(){ $('#this_form').submit(); });
}
</script>
函数myfunc()
{
$(“#文件夹名称(文件夹名称)”).change(函数(){$(“#此表单”).submit();});
}
表单将作为JS而不是HTML提交。如果有人能向我解释为什么这是作为JS而不是HTML提交的,那将非常有帮助
当我将application.js重命名为application.js.coffee并在我的coffee脚本中添加以下代码时,同样的代码在我编写时被提交为:onchange=>this.form.submit,作为HTMLNo:(它说同样的“无法将编码转换为字符串(c:/Final/authorize\u v1/app/assets/javascripts/application.js.coffee)”,再次出错->“#=require jquery#=require jquery_ujs#=require_self$('#文件夹名_foldernames')。change=()->$('#显示工作流程列表_表单')。submit()”让我知道这个脚本是错误的请参阅我的问题解决方案。非常感谢您的帮助,这样您就可以保留
application.js了,在代码中添加类似的引号。”#文件夹_name _foldernames“
和此
“#显示_工作流_列表”,并且您必须包含jquery。确实我这样做了,并且它现在正在工作。我将很快发布另一个与另一个问题相关的问题;)
$('#folder_name_foldernames').change(function(){
$('#this_form').submit();
});
<%= 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>