私はJavascriptのバリデーションを持つRails Deviseフォームを持っています。ユーザーがsubmitを押すと、検証が機能し、ユーザーは必要なフォームに再フォーカスされます。Rails data-disable-with re-enablingボタン
しかし、レールは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);
});
をしかし、誰成功していない、以前に私はボタンにリスナーを追加してみました:
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;
}
しかし、このボタンを無効にして機能しなかった(rails etherで隠されていた)機能の前に実行されたために失敗しました。
して送信ボタンをマイ単純です:
<%= f.submit "Create my account", class: 'btn-sign-up', id: 'btn-sign-up' %>
誰もがここで私を助けることはできますか?私はこのページのjQuery_ujsを無効にできればいいと思っていますが、それができるかどうかはわかりません。
は、これを追加5をレールましたか?ちょうど1時間をデバッグするのに費やした、「地獄が私の気になる送信ボタンを変えているのは誰ですか?」どのようにUJSの失礼な。これは仕事をしているようです。 – Mike
デフォルトの動作を強制する手段としてJSをロードした後でページを操作することは悪いことです。 – Archonic