确认非删除操作的对话框 - bootbox-rails - Ruby on rails

时间:2015-10-20 11:24:50

标签: ruby-on-rails

当我想使用此代码从系统中删除用户时:

<%= link_to fa_icon("minus-square", text: t('systems.delete')), doctor_path(doctor[:id]), method: :delete, data: { confirm: t('systems.confirm_delete') } %> 

它说

  

您确定要删除此内容吗?

这非常有效:)。

但是当我点击不删除的完成按钮时,消息不会出现,但如果我点击完成按钮双,它就可以了。 我的问题是,如何在按下完成按钮时启用,我想看到“你确定吗?”这样的消息。

<%= f.submit t('finish'), class: "btn red button-next", id:"bitir_button", data: { confirm: "Süreci bitirmek istediğinize emin misiniz?" } 

-

 $.rails.confirm = function(message, element) 
   { 

    var state = element.data('state');
    var txt = element.text();
    if (!state)
    {
        element.data('state', 'last');
        element.text('Are You Sure you want to delete this?');
        setTimeout(function()
        {
            element.data('state', null);
            element.text(txt);
        }, 10000);
        return false;
    }   
    else
    {
        return true;
    }
   };

   $.rails.allowAction = function(element) 
   {
    var message = element.data('confirm'),
        answer = false, callback;
    if (!message) { return true; }

    if ($.rails.fire(element, 'confirm')) 
    {
        // le extension.
        answer = $.rails.confirm(message, element);
        callback = $.rails.fire(element, 'confirm:complete', [answer]);
    }
    return answer && callback;
   };

   $.rails.handleLink = function(link) 
   {
    if (link.data('remote') !== undefined) 
    {
        $.rails.handleRemote(link);
    } 
    else if (link.data('method')) 
    {
        $.rails.handleMethod(link);
    }

    return false;
   };

1 个答案:

答案 0 :(得分:1)

bootbox-rails添加到您的gemfile。

gem "twitter-bootstrap-rails"
gem 'bootbox-rails' 

覆盖rails确认处理程序。

$.rails.confirm = function(message){
  return window.bootbox.confirm("Are you sure?", function(result) {
    return result;
  });
}