我正在提交一个表单,其中嵌套了一些复杂的 Rails Controller 。 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 Controller 可以很好地处理这个问题,并且参数都在它们应该在的位置。
然后我渲染一个 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 有关吗? 感谢您的帮助
最佳答案
好的,通过在 View 中的表单定义中返回旧样式 :remote => true 来修复它。
我认为世界已经不再使用这种方式,转而采用不显眼的 JS 从提交事件中反弹。显然我错了,但这个解决方案可能对某人有帮助,所以我把它留在这里
关于javascript - Rails js.erb 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37437247/