我有一个Rails Devise表单,它有javascript验证.当用户按下提交时,验证工作,用户重新聚焦在他们需要的表单上.
但是,rails使用data-disable-with在单击按钮后禁用该按钮,因此在验证后用户无法再单击提交.我试图设置某种监听器来检查按钮何时被禁用,等待一会儿以防止双击,然后重新启用按钮.
我尝试了很多代码迭代,我尝试的最新版本是:
$(document.on("ajax:success", "new_supplier", function() {
var button;
button = $(this).find('.btn-sign-up');
setTimeout((function() { return button.disabled=false; }),1);
});
Run Code Online (Sandbox Code Playgroud)
但是没有成功,之前我尝试过只为按钮添加一个监听器:
var button = document.getElementById('btn-sign-up');
button.addEventListener("click", enableButton);
function enableButton() {
if (button.disabled)
{
window.setTimeout(enable(), 2000);
}
}
function enable() {
button.disabled=false;
}
Run Code Online (Sandbox Code Playgroud)
但这失败了,因为它在禁用按钮的功能(隐藏在rails ether中)之前运行,因此无效.
我的提交按钮很简单:
<%= f.submit "Create my account", class: 'btn-sign-up', id: 'btn-sign-up' %>
Run Code Online (Sandbox Code Playgroud)
有人可以帮我从这里出去吗?我想如果我可以为这个可以工作的页面禁用jQuery_ujs,但不确定我是否可以这样做.
我正在努力将我的项目推向Heroku.我一直在使用:
gem 'dotenv-rails', :groups => [:development, :test]
Run Code Online (Sandbox Code Playgroud)
因为我正在使用recpatcha,需要将我的密钥导出到开发中的应用程序.
当我尝试将代码推送到heroku时,我注意到以下错误消息:
remote: ! NameError: uninitialized constant Dotenv
Run Code Online (Sandbox Code Playgroud)
所以我在应用程序中注释掉了Dotenv gem和任何Dotenv变量.我跑了
$ bundle exec rake -P
Run Code Online (Sandbox Code Playgroud)
然后再试一次.我仍然从Heroku得到同样的错误.我需要以某种方式重置我的gemfiles吗?