2011-08-08 54 views
1

當我使用javascript提交表單時,我得到了html響應,就像它忽略了遠程真實參數。如果我使用submit按鈕提交表單,它會執行AJAX並更新請求的頁面元素。所以代碼中唯一的區別是onchange參數和按鈕的存在。這裏是我的代碼形式:Rails 3使用javascript提交表單會導致html響應而不是AJAX響應

<% 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將提交相同的遠程=>真正的選項的形式,但它似乎繞過了。我不得不使用新的AjaxRequest來提交它。