在Rails 3中的链接中使用数据确认标记会生成需要提醒以进行确认的无障碍Javascript。例如:
<%= link_to "Destroy", @product, :confirm => "Are you sure?", :method => :delete %>
但是,我想将此行为更改为以下内容:
单击按钮将其文本更改为“当然?”然后用户必须再次单击它才能执行操作。 (也许文本甚至可以在超时后恢复正常)
在Rails 3.1应用程序中更改此行为的最佳位置在哪里? (顺便说一句,我正在使用Twitter Bootstrap,以防有一个更好的解决方案可以很好地工作)。
答案 0 :(得分:0)
所以这就是你如何做到的(这是基于Custom rails confirm box (with $.rails.confirm override))
如果你需要(Rails 3.1)
,这将在你的application.js中$.rails.confirm = function(message, element)
{
var state = element.data('state');
var txt = element.text();
if (!state)
{
element.data('state', 'last');
element.text('Sure?');
setTimeout(function()
{
element.data('state', null);
element.text(txt);
}, 2000);
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;
};