【问题标题】:cocoon, link_to_remove_association with confirm?茧,link_to_remove_association 与确认?
【发布时间】:2012-05-24 03:32:43
【问题描述】:

有没有一种简单的方法可以添加在用户单击链接_to_remove_association 时出现的确认对话框?

cocoon gem 真的很棒,不知道有没有这么现成的选项??如果没有,我可以使用 jQuery 取消或放开事件吗?

谢谢,

【问题讨论】:

  • 好问题。我自己不需要,因为您正在编辑一个表单,在更改生效之前仍然需要保存它,所以我总是假设如果用户错误地删除了嵌套元素,她或他仍然可以按取消或重新加载页面。但我会尽力回答你的问题:)
  • 我同意这是必要的。我们不能也不应该期望我们的最终用户明白点击“删除项目”不是永久性的。良好的 UI 设计要求我们警告他们删除,即使更改没有提交到服务器。

标签: ruby-on-rails-3 cocoon-gem


【解决方案1】:

你应该可以简单地<%= link_to_remove_association 'Remove', f, data: { confirm: 'Are you sure that you want to remove these nested fields?' } %>,不是吗?

【讨论】:

  • 不,我不这么认为,请阅读作者在问题评论中所说的内容
  • 我认为我正在这样做。我唯一不清楚的是“用户错误地删除了嵌套元素”的事件。当“用户错误地单击删除链接”时,将应用确认对话框。但是如果元素被移除,那么它就会被移除。 “撤消”功能完全是一个单独的问题。
  • 不,这正是你应该这样做的方式。我以前从未尝试过,因为正如解释的那样:我看不到这个的用途。给link_to_remove_association 的所有选项都刚刚交给link_to(我刚刚测试并确认了这个工作)。如果用户犯了错误,他总是可以重新加载页面或返回。更改仅在用户提交表单时生效。
  • 这几乎是正确的。确认哈希需要嵌套在data 破折号下:查看@kostafun 的答案以了解正确的方法。
  • 该元素将被删除。我想这与仍在传播的点击事件有关。
【解决方案2】:
  = link_to_remove_association "remove item", f,  data: {confirm: 'Are you sure?'}

测试工作:)

【讨论】:

    【解决方案3】:

    我向删除链接添加了一个点击处理程序,并通过返回 false 来阻止事件传播。

    $(".container").on('click',"a.remove_fields",function(){
      return confirm("Do you want to delete this?") ;
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 2013-01-11
      • 1970-01-01
      相关资源
      最近更新 更多