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="✓" /><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結果一起工作?
謝謝,