Javascript JQuery Mobile/Rails 4-仅对表单禁用Ajax

Javascript JQuery Mobile/Rails 4-仅对表单禁用Ajax,javascript,jquery,ruby-on-rails,jquery-mobile,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails,Jquery Mobile,Ruby On Rails 4,在jquerymobile的v1.1之前,只为表单提交关闭AJAX的功能已被弃用(它与全局数据AJAX设置结合使用)。我目前正在使用jqm1.3 有没有一个快速的解决方案,可以在所有表单标记插入DOM时(通过JS)将数据嵌入启用ajax的='true'中?我试过很多方法,但似乎都不管用。请注意,将数据属性添加到每个单独的表单标记将不起作用,因为几个rails帮助程序(例如Butto和destroy)被包装到运行时动态创建的表单标记中 或者,如果任何Rails开发人员都在关注这一点,您能告诉我如何

在jquerymobile的v1.1之前,只为表单提交关闭AJAX的功能已被弃用(它与全局数据AJAX设置结合使用)。我目前正在使用jqm1.3

有没有一个快速的解决方案,可以在所有表单标记插入DOM时(通过JS)将数据嵌入启用ajax的='true'中?我试过很多方法,但似乎都不管用。请注意,将数据属性添加到每个单独的表单标记将不起作用,因为几个rails帮助程序(例如Butto和destroy)被包装到运行时动态创建的表单标记中

或者,如果任何Rails开发人员都在关注这一点,您能告诉我如何对form builder类进行monkey补丁,以将数据ajax enabled='true'添加到所有表单标记中吗?另外,如果其他助手没有绑定到form builder对象中,我会请求与上面提到的相同的帮助


jquerymobile和Rails都很棒。试图让他们配合得很好是一个小小的挑战

您可以通过javascript实现这一点,这比在rails form builder中使用monkey补丁更干净、更容易:

$(document.body).delegate("form",'submit',function(e){
  $(this).attr("data-ajax", "false");
});

您可以将
pageshow
上的
data ajax=“false”
属性添加到所有表单标记中

$(文档)。在('pageshow','data role=page]'上,函数(){
$(this.find('form')。每个(函数(){
如果(!!$(this.attr('data-ajax')){//如果属性不存在,请添加它
$(this.attr('data-ajax','false');
}
});
});

谢谢你的建议,但它不起作用。DOM中没有插入任何内容。我在加载JQM之前和加载JQM之后都试过了。你还有其他建议吗?@AngeloChrysoulakis我也测试过了,它对我也不起作用。很抱歉,我想我之前已经测试过了,但看起来你还是找到了答案。谢谢你的回复!将
data ajax=false
属性添加到表单标记。@omar-谢谢,我知道我可以覆盖每个表单中的设置,但我希望通过JS或覆盖表单生成器类.hmmm将data ajax='false'应用于所有表单标记。请尝试此
$(文档)。在('pagecreate','data role=page'),函数(){$(此).find('form').each(函数(){$(this.attr('data-ajax','false');});})我不确定这是否有效,请在我考虑其他解决方案时试一试。@omar-谢谢你的建议,但不幸的是,没有骰子!我尝试在JQM加载之前和之后插入脚本。我不明白为什么JQM团队不赞成让人们在类级别切换AJAX?@omar-重试后,似乎将pagecreate更改为pageshow现在可以工作了,它通过http提交表单。它只是在我清除浏览器缓存后才接收到更改(有点奇怪…),如果您将注释放在答案中,我会将答案标记为正确。