这是alertifyJS,我需要使用rails实现这一点。
我已下载此JS和CSS文件并加入assets/javascripts/modules/alertify.js
assets/stylsheets/modules/alertify.css
assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require modules/alertify
assets/stylsheets/application.css
*= require modules/alertify
查看
<%= link_to "Go!", new_employer_session_path, data: {confirm: "Are you sure? "} %>
但确认对话框不起作用。
我现在能做什么。
由于
答案 0 :(得分:1)
如果JS
和CSS
正常工作
您需要声明方法需要采取的操作方法,如下所示
我认为这是一种GET
方法,然后看到这一点,您可以更改为您的方法
<%= link_to "Go!", new_employer_session_path, method: :get, data: {confirm: "Are you sure? "} %>
#=> declare a method :get, :post or :delete
如果没有宣布一种方法,它就不会起作用
并在您的JS
文件JS
application.js
代码
$.rails.allowAction = function(element){
if( undefined === element.attr('data-confirm') ){
return true;
}
$.rails.showConfirmDialog(element);
return false;
};
$.rails.confirmed = function(element){
element.removeAttr('data-confirm');
element.trigger('click.rails');
};
$.rails.showConfirmDialog = function(element){
var msg = element.data('confirm');
alertify.confirm(msg, function(e){
if(e){
$.rails.confirmed(element);
return true;
}
})
};
希望有所帮助
答案 1 :(得分:0)
这是您需要做的步骤:
1)将此添加到gem文件:
gem 'alertifyjs-rails'
2)将此添加到/app/assets/javascripts/application.js
//= require alertify
3)将此添加到/app/assets/stylesheets/application.css
*= require alertify
*= require alertify/default
*= require alertify/bootstrap
4)将其添加到/app/assets/javascripts/application.js的末尾 必须使Alertify与现有代码一起使用。
$.rails.allowAction = function(element){
if( undefined === element.attr('data-confirm') ){
return true;
}
$.rails.showConfirmDialog(element);
return false;
};
$.rails.confirmed = function(element){
element.removeAttr('data-confirm');
element.trigger('click.rails');
};
$.rails.showConfirmDialog = function(element){
var company_name = "Your Company Name Security Confirmation";
var msg = element.data('confirm');
alertify.confirm(msg, function(e){
if(e){
$.rails.confirmed(element);
return true;
}
}).set({title: company_name}).set('onfocus', function(){
document.activeElement.blur();
});
};
最后一个(.set('onfocus',...) 对话框中的任何按钮。这样看起来更漂亮,但是你 如果您不喜欢它,则无需使用它。
5)转到项目的根目录并在终端中运行: 捆绑包
6)在运行服务器的情况下转到终端,并通过以下方式停止服务器:CTRL + C
7)使用以下命令再次运行服务器: Rails服务器
8)在Web浏览器中刷新页面。它应该可以与您已经存在的代码一起使用。
希望有帮助!