我提交了一个表单,有些复杂的嵌套到Rails控制器。 Javascript与提交按钮绑定如下:
$('#new_search').submit(function() {
var valuesToSubmit = $(this).serializeArray();
$.ajax({
type: "POST",
url: $(this).attr('action'), //sumbits it to the given url of the form
data: valuesToSubmit,
dataType: "POST"
})
return false; // prevents normal behaviour
});
Rails控制器处理这个问题很好,参数就是它们应该的位置。
然后我渲染一个js.erb文件:
respond_to do |format|
format.js { render '/searches/update_search_results.js.erb' }
end
并且日志显示确实已呈现:
Rendered searches/update_search_results.js.erb (0.3ms)
但是在这个文件中(我已经加倍检查了文件名)甚至是一个简单的
alert("hello world");
没有开火。控制台日志中没有Javascript错误。有人有什么建议吗?与发送Ajax请求的原始Javascript有关? 谢谢你的帮助
答案 0 :(得分:0)
好的,通过回到旧样式来修复它:remote =>在视图中的表单定义中为true。
我认为这个世界已经从这个转移到不引人注目的JS反弹提交事件。显然我错了,但这个解决方案可能对某人有所帮助,所以我将其留在这里