我创建了一个远程提交表单的 Rails 应用程序,然后在验证未通过时显示表单验证错误。
我的表格完美无缺。然而,我发现我设置它的方式会破坏任何远程链接。这样做的原因是我将全局 AJAX 数据类型设置为“json”。如果我删除此设置,我的远程链接可以工作,但不会触发我的表单“成功”和“失败”事件。
这是我的代码...
应用程序.js
$.ajaxSetup({
dataType: 'json'
})
foo.coffee
$('#foo_form').on('ajax:success', (e, data, status, xhr) ->
console.log 'Great success'
).on 'ajax:error', (e, data, status, xhr) ->
console.log('Great Failure')
索引.haml
= link_to "New Foo",new_foo_path, data: { remote: true}
总结一下:使用上面的代码允许我远程提交表单,之后成功或错误消息都会记录到我的控制台。但是,远程链接不适用于上面定义的 '$.ajaxSetup({dataType: 'json'})' 设置。如果我删除这段代码,链接会起作用,但不会触发表单事件。
有什么想法吗?
最佳答案
你试过吗:
= link_to "New Foo", new_foo_path(format: :json), 数据: {remote: true}
请准确描述远程链接无法正常工作的原因是什么? 500、404,javascript 没有阻止默认?
关于javascript - 设置全局 ajax 数据类型会破坏 rails 远程链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39026938/