with type rails instalar couldn bootstrap añadir application javascript jquery ruby-on-rails ujs

javascript - type - Botón de inhabilitación de datos de Rails con re-habilitación



javascript en ruby on rails (4)

Este comportamiento se cambió en Rails 5, ahora está deshabilitando los envíos de forma predeterminada.

En lugar de una respuesta aceptada, sugeriría usar la siguiente configuración:

config.action_view.automatically_disable_submit_tag = false

o, para hacerlo ad-hoc para botones específicos, agregue esto al botón enviar

data: { disable_with: false }

Tengo un formulario de Rails Devise que tiene validación de javascript. Cuando el usuario presiona enviar, la validación funciona y el usuario vuelve a enfocarse en el formulario donde debe estar.

Sin embargo, Rails usa la función de deshabilitación de datos para deshabilitar el botón después de hacer clic, por lo que después de la validación, el usuario ya no puede hacer clic en enviar. Estoy intentando configurar algún tipo de escucha para verificar cuándo se ha desactivado el botón, espere un momento para evitar hacer doble clic y, a continuación, vuelva a habilitar el botón.

He intentado muchas iteraciones de código, la última que probé fue:

$(document.on("ajax:success", "new_supplier", function() { var button; button = $(this).find(''.btn-sign-up''); setTimeout((function() { return button.disabled=false; }),1); });

Pero no tuve éxito, anteriormente intenté simplemente agregar un oyente al botón:

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; }

Pero esto falló porque se ejecutó antes de la función (oculta en los rieles ether) que deshabilitó el botón, por lo que no funcionó.

Mi botón de enviar es un simple:

<%= f.submit "Create my account", class: ''btn-sign-up'', id: ''btn-sign-up'' %>

¿Puede alguien ayudarme aquí? Creo que si puedo deshabilitar los jQuery_ujs para esta página que funcionaría, pero no estoy seguro de poder hacerlo.


Esto fue útil para darme una pista sobre qué buscar. Si alguien está buscando cómo corregir esto en su archivo html.erb, esta fue mi solución:

<p> <%= f.submit ''Submit'', data: { disable_with: false } %> </p>


Me las arreglé para resolver esto de manera bastante simple. Acabo de entrar y quité la función de deshabilitar datos del botón con el código:

$(''#my-button'').removeAttr(''data-disable-with'');

Y luego restablecer el atributo cuando el formulario estaba listo para ser enviado para evitar que los clics duplicados creen duplicados.


Mira mi respuesta

$button = $(''#someId'') $.rails.enableElement($button) $button.removeAttr(''disabled'')

https://.com/a/44318786/4349494