2

Railsによって生成さform_tagれた次のHTMLがあります。select_tag

<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="&#x2713;" /></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コードを教えてください。ここで、:onchangeを使用すると、フォームがJSフォームではなくhtmlとして送信されるhtmlオプションであることがわかります。したがって、: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は上記のビューに関連する私のコントローラーです)

しかし、ドロップダウンで選択を変更しても、変更は表示されません。助けてください。

4

3 に答える 3

1

私はそれを次のようにして問題を解決しました:

<%= 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>

フォームはHTMLではなくJSとして送信されています。これがHTMLではなくJSとして送信されている理由を誰かが説明してくれると非常に役立ちます:onchange => this.form.submitと書いたときの同じコードが、HTMLとして送信されています

于 2012-07-26T19:00:33.570 に答える
0

idあなたがあなたの<form>タグに与えるならば、あなたはidそこで使うことができます。

好き:

<form accept-charset="UTF-8" action="/deployment_group/show_workflow_list" data-remote="true" id="this_form" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /></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>

その後:

$('#folder_name_foldernames').change(function(){
    $('#this_form').submit();
});

セレクターを引用符で囲むことを忘れないでください。そうしないと、JavaScriptエラーが発生します。

于 2012-07-26T17:56:03.977 に答える
0

'application.js'を'application.js.coffee'で複製#= require_selfし、ファイルに追加してみてください。

于 2012-07-26T18:18:42.463 に答える