1

在 JQuery Mobile 的 v 1.1 之后,仅针对表单提交关闭 AJAX 的功能已被弃用(它与全局 data-ajax 设置相结合。)我目前正在使用 JQM v 1.3。

任何人都有一个快速的解决方案来将 data-ajax-enabled='true' 嵌入到所有表单标签中,因为它们被插入到 DOM 中(通过 JS)?我尝试了很多方法,但似乎没有一个有效。请注意,将 data 属性添加到每个单独的表单标签将不起作用,因为几个 rails 助手(例如 button_to 和 destroy)被包装到在运行时动态创建的表单标签中。

或者,如果任何 Rails 开发人员正在查看此问题,您能否指出如何对表单构建器类进行猴子修补以将 data-ajax-enabled='true' 添加到所有表单标签?另外,如果其他助手不绑定到表单构建器对象,我请求他们提供相同的帮助...?

JQuery Mobile 很棒,Rails 也很棒。试图让他们很好地一起玩是一个小小的挑战!

4

2 回答 2

2

您可以将data-ajax="false"属性添加pageshow到所有表单标签。

$(document).on('pageshow', '[data-role=page]', function () {
  $(this).find('form').each(function () {
    if(!!$(this).attr('data-ajax')) { // if attribute doesn't exist, add it
      $(this).attr('data-ajax', 'false');
    }
  });
});
于 2013-09-19T20:02:10.833 回答
0

您可以通过 javascript 执行此操作,这比猴子修补 rails form builder 更清洁、更容易:

$(document.body).delegate("form",'submit',function(e){
  $(this).attr("data-ajax", "false");
});
于 2013-09-19T16:43:56.100 回答