Aquí hay un ejemplo que se expande en la solución de Andreas Köberle. Se utiliza jQuery para el controlador de eventos y el evento ready documento, pero los que podría ser cambiado a llanura JS:
(function(document, $) {
$(function() {
$(document).on('click', '[disable-on-click], .disable-on-click', function() {
var disableText = this.getAttribute("data-disable-text") || 'Processing...';
if(this.form) {
this.form.submit();
}
this.disabled = true;
if(this.tagName === 'BUTTON') {
this.innerHTML = disableText;
} else if(this.tagName === 'INPUT') {
this.value = disableText;
}
});
});
})(document, jQuery);
A continuación, se puede utilizar en HTML así:
<button disable-on-click data-disable-text="Saving...">Click Me</button>
<button class="disable-on-click">Click Me</button>
<input type="submit" disable-on-click value="Click Me" />
Esto probablemente no es culpa de las llamadas que muestra. Por favor, muestre el HTML completo del formulario. –
No utilice el evento onclick del botón Enviar: use el evento onsubmit del formulario. De lo contrario, no captarás una presentación desde el teclado. – Nick