Mam formularz Rails Devise, który ma sprawdzanie poprawności javascript. Gdy użytkownik naciśnie przycisk, funkcja sprawdzania poprawności działa, a użytkownik jest ponownie skupiony na formularzu, w którym musi być.Wyłączenie danych z szynami za pomocą przycisku ponownego włączania
Jednak szyny używają opcji wyłączania danych, aby wyłączyć przycisk po kliknięciu, więc po sprawdzeniu poprawności użytkownik nie może już klikać przycisku przesyłania. Próbuję skonfigurować słuchacza do sprawdzania, kiedy przycisk został wyłączony, odczekać chwilę, aby zapobiec podwójnemu kliknięciu, a następnie ponownie włączyć przycisk.
Próbowałem wielu iteracji kodu, najnowsza Próbowałem było:
$(document.on("ajax:success", "new_supplier", function() {
var button;
button = $(this).find('.btn-sign-up');
setTimeout((function() { return button.disabled=false; }),1);
});
Ale nie miał sukcesów, wcześniej próbowałem tylko dodawanie słuchacza do przycisku:
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;
}
Ale to nie powiodło się, ponieważ działało przed funkcją (ukrytą w szynie ether), która wyłączała przycisk, więc nie działała.
przycisk Mój przedstawienia jest prosta:
<%= f.submit "Create my account", class: 'btn-sign-up', id: 'btn-sign-up' %>
Czy ktoś może mi pomóc tutaj? Myślę, że jeśli mogę wyłączyć jQuery_ujs dla tej strony, która zadziała, ale nie jestem pewien, czy mogę to zrobić.
Czy on Rails 5, który dodał ten? Spędziłem godzinę na debugowaniu: "Kto do diabła zmienia mój przycisk cholernego wysyłania!" Jak niegrzecznie z UJS. Wydaje się, że wykonuje to zadanie. – Mike
Manipulowanie stroną po załadowaniu za pomocą JS jako sposobu wymuszania domyślnego zachowania jest złą praktyką. – Archonic