【发布时间】:2013-09-19 16:06:23
【问题描述】:
JQuery Mobile 的 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 也很棒。试图让他们很好地一起玩是一个小小的挑战!
【问题讨论】:
-
在表单标签中添加
data-ajax=false属性。 -
@omar - 谢谢,我知道我可以覆盖每个表单中的设置,但我希望通过 JS 或覆盖将 data-ajax='false' 应用于所有表单标签表单生成器类。
-
hmmm..试试这个
$(document).on('pagecreate', '[data-role=page]', function () { $(this).find('form').each(function () { $(this).attr('data-ajax', 'false'); }); });我不确定这是否可行,在我想一些其他解决方案时试一试。 -
@omar - 感谢您的建议,但不幸的是,没有骰子!我尝试在 JQM 加载之前和 JQM 加载之后插入脚本。我不明白为什么 JQM 团队不赞成让人们能够在班级级别切换 AJAX?
-
@omar - 重试后,似乎将 pagecreate 更改为 pageshow 现在可以正常工作,并且它通过 http 提交表单。它只是在我清除浏览器缓存后才获得更改(有点奇怪......)如果您将评论放在答案中,我会将答案标记为正确。
标签: javascript jquery ruby-on-rails jquery-mobile ruby-on-rails-4