Rails Rails 自定义 jquery_ujs 的 confirm 确认对话框

huacnlee · 2016年03月15日 · 2444 次阅读

Rails 可以很方便的给按钮加上提交前的确认对话框:

<a href="#" data-confirm="确定要提交么?" class="btn btn-primary">提交</a>
<a href="#" data-confirm="确定要删除这个信息么?" class="btn btn-danger">删除</a>

但它调用的是浏览器默认的确认对话框,如果想要定制怎么办呢?

可以用这样简单的方法:

我这里用的是 Bootbox 这个对话框库 http://bootboxjs.com/

// https://gist.github.com/huacnlee/84d13ea64cc8ccb2d4b0
$.rails.allowAction = function(element) {
  var message = element.attr('data-confirm');
  if (!message) { return true; }

  var opts = {
    title: "确认提交",
    message: message,
    callback: function(ok) {
      if (ok) {
        element.removeAttr('data-confirm');
        element.trigger('click.rails')
      }
    }
  };

  bootbox.confirm(opts);

  return false;
}
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号