2011-08-08 13 views
1

javascriptでフォームを送信すると、htmlレスポンスが得られます。リモートのtrueパラメータは無視されます。送信ボタンでフォームを送信すると、AJAXが実行され、要求されたページ要素が更新されます。したがって、コードの唯一の違いは、onchangeパラメータとボタンの存在です。ここに私のコードのフォームです:Rails 3 javascriptでフォームを送信すると、AJAXレスポンスの代わりにhtmlレスポンスが発生する

<% form_tag('switch_car', :method => :put, :name => "switch_car", :remote => true) do %> 
<div class="field"> 
    <label>Car Name:</label> 
    <%= select_tag(:id, options_from_collection_for_select(active_cars, "id", "name"), :onchange => "submitForm('switch_car')", :include_blank => true)%> 
</div> 

<% end %> 

ここに私のjavascriptの機能です:単純な提出。ここで

<script type="text/javascript" charset="UTF-8"> 
    function submitForm(formname){ 
     document.switch_car.submit(); 
    } 
    </script> 

HTMLが生成されます。

<form accept-charset="UTF-8" action="switch_car" data-remote="true" method="post" name="switch_car"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="PEbdqAoiik37lcoP4+v+dakpYxdpMkSm7Ub8eZpdF9I=" /></div><div class="field"> 
    <label>Car Name:</label> 
    <select id="id" name="id" onchange="submitForm('switch_car')"><option value=""></option><option value="9">Truck</option> 
<option value="10">Car</option></select> 
</div> 

をJavascriptを同じフォーム上のボタンとは異なる結果を引き起こし提出理由を誰もが知っていますか?もしそうなら、私はjavascriptをAjaxの結果を扱うために提出することができますか?

ありがとう、

答えて

0

問題が見つかりました。私はjavascriptでフォームを送信すると同じremote => trueオプションでフォームを送信すると思ったが、それを回避するようだ。私は新しいAjaxRequestを使って提出しなければならなかった。

関連する問題