繁体   English   中英

Rails 3 使用 Javascript 提交表单会导致 html 响应而不是 AJAX 响应

[英]Rails 3 Submitting a form with Javascript causes html response instead of a AJAX response

当我使用 Javascript 提交表单时,我得到了 html 响应,就像它忽略了远程 true 参数一样。 如果我使用提交按钮提交表单,它会执行 AJAX 并更新请求的页面元素。 所以代码中唯一的区别是onchange参数和按钮的存在。 这是我的表单代码:

<% 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 结果吗?

发现问题。 我认为使用 javascript 提交表单会使用相同的 remote => true 选项提交表单,但它似乎绕过了这一点。 我必须使用新的 AjaxRequest 提交才能使其正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM