mostrar mensaje formulario envio enviar despues confirmacion javascript jquery

mensaje - confirmacion de envio de formulario javascript



Deshabilitar el botón de enviar en el envío del formulario (11)

Como se dijo anteriormente, si agrega el atributo deshabilitado en el botón de enviar, los datos no serán enviados.

El truco de @Valamas funciona, pero encontré una solución que es muy fácil de implementar:

$(''#yourform'').submit(function(){ $(''#mySubmitButton'').addClass(''disabled''); });

Y define la clase deshabilitada en CSS así:

.disabled{ cursor:not-allowed; }

Esto hará lo mismo que disabled = "disabled", pero sin las consecuencias en los datos enviados.

Escribí este código para desactivar los botones de enviar en mi sitio web después del clic:

$(''input[type=submit]'').click(function(){ $(this).attr(''disabled'', ''disabled''); });

Lamentablemente, no envía el formulario. ¿Cómo puedo arreglar esto?

EDITAR Me gustaría vincular el envío, no el formulario :)


Esto debería solucionarlo en tu aplicación.

$(":submit").closest("form").submit(function(){ $('':submit'').attr(''disabled'', ''disabled''); });


Hazlo en onSubmit() :

$(''form#id'').submit(function(){ $(this).find('':input[type=submit]'').prop(''disabled'', true); });

Lo que está sucediendo es que estás deshabilitando el botón por completo antes de que realmente desencadene el evento de envío.

Probablemente también deba pensar en nombrar sus elementos con ID o CLASSes, por lo que no selecciona todas las entradas de tipo de envío en la página.

Demostración: http://jsfiddle.net/userdude/2hgnZ/

(Tenga en cuenta que utilizo preventDefault() y return false por lo que el formulario no se envía en el ejemplo, déjelo en uso).


He estado usando blockUI para evitar incompatibilidades del navegador con botones deshabilitados u ocultos.

http://malsup.com/jquery/block/#element

Entonces mis botones tienen una autobutton de clase:

$(".autobutton").click( function(event) { var nv = $(this).html(); var nv2 = ''<span class="fa fa-circle-o-notch fa-spin" aria-hidden="true"></span> '' + nv; $(this).html(nv2); var form = $(this).parents(''form:first''); $(this).block({ message: null }); form.submit(); });

Entonces una forma es así:

<form> .... <button class="autobutton">Submit</button> </form>


La solución simple y efectiva es

<form ... onsubmit="myButton.disabled = true; return true;"> ... <input type="submit" name="myButton" value="Submit"> </form>

Fuente: here


Lo siguiente funcionó para mí:

var form_enabled = true; $().ready(function(){ // allow the user to submit the form only once each time the page loads $(''#form_id'').on(''submit'', function(){ if (form_enabled) { form_enabled = false; return true; } return false; }); });

Esto cancela el evento de envío si el usuario intenta enviar el formulario varias veces (haciendo clic en el botón Enviar, presionando Entrar, etc.)


Tu código realmente funciona en FF, no funciona en Chrome.

Esto funciona en FF y Chrome.

$(document).ready(function() { // Solution for disabling the submit temporarily for all the submit buttons. // Avoids double form submit. // Doing it directly on the submit click made the form not to submit in Chrome. // This works in FF and Chrome. $(''form'').on(''submit'', function(e){ //console.log(''submit2'', e, $(this).find(''[clicked=true]'')); var submit = $(this).find(''[clicked=true]'')[0]; if (!submit.hasAttribute(''disabled'')) { submit.setAttribute(''disabled'', true); setTimeout(function(){ submit.removeAttribute(''disabled''); }, 1000); } submit.removeAttribute(''clicked''); e.preventDefault(); }); $(''[type=submit]'').on(''click touchstart'', function(){ this.setAttribute(''clicked'', true); }); }); </script>


Una forma más simple. Lo intenté y funcionó bien para mí:

$('':input[type=submit]'').prop(''disabled'', true);


Cómo deshabilitar el botón de enviar

solo llame a una función en evento onclick y ... devuelva true para enviar y falso para desactivar submit. O llame a una función en window.onload como:

window.onload = init();

y en init () hacer algo como esto:

var theForm = document.getElementById(‘theForm’); theForm.onsubmit = // what ever you want to do


Específicamente si alguien enfrenta un problema en Chrome

Lo que debe hacer para solucionarlo es utilizar la etiqueta onSubmit en el elemento para desactivar el botón Enviar. Esto permitirá que Chrome deshabilite el botón inmediatamente después de presionarlo y el envío del formulario continuará.

p.ej

<form name ="myform" method="POST" action="dosomething.php" onSubmit="document.getElementById(''submit'').disabled=true;"> <input type="submit" name="submit" value="Submit" id="submit"> </form>


Los controles deshabilitados no envían sus valores, lo que no ayuda a saber si el usuario hizo clic en guardar o eliminar.

Así que guardo el valor del botón en un oculto que se envía. El nombre de lo oculto es lo mismo que el nombre del botón. Llamo a todos mis botones por el nombre del button .

Por ejemplo, <button type="submit" name="button" value="save">Save</button>

Basado en esto que encontré here . Simplemente almacene el botón presionado en una variable.

$(document).ready(function(){ var submitButton$; $(document).on(''click'', ":submit", function (e) { // you may choose to remove disabled from all buttons first here. submitButton$ = $(this); }); $(document).on(''submit'', "form", function(e) { var form$ = $(this); var hiddenButton$ = $(''#button'', form$); if (IsNull(hiddenButton$)) { // add the hidden to the form as needed hiddenButton$ = $(''<input>'') .attr({ type: ''hidden'', id: ''button'', name: ''button'' }) .appendTo(form$); } hiddenButton$.attr(''value'', submitButton$.attr(''value'')); submitButton$.attr("disabled", "disabled"); } });

Aquí está mi función IsNull . Utilice o sustituya su propia versión por IsNull o undefined, etc.

function IsNull(obj) { var is; if (obj instanceof jQuery) is = obj.length <= 0; else is = obj === null || typeof obj === ''undefined'' || obj == ""; return is; }