Cómo evitar el reenvío de formulario
En este tutorial vamos a ver cómo evitar el envío doble de formularios.
Aviso importante: Esta solución solo trabaja a nivel explorador, no evita el uso de herramientas de inserción de datos con herramientas automatizadas.
Esta solución puede ser implementada a nivel vista o a nivel layout.
A nivel individual en la vista puedes colocar el siguiente código en el inicio de la vista.
$js = <<<JS
$(document).on("beforeValidate", "form", function(event, messages, deferreds) {
$(this).find(':submit').attr('disabled', true);
console.log('BEFORE VALIDATE TEST');
}).on("afterValidate", "form", function(event, messages, errorAttributes) {
console.log('AFTER VALIDATE TEST');
if (errorAttributes.length > 0) {
$(this).find(':submit').attr('disabled', false);
}
});
JS;
$this->registerJs($js);
A nivel de sitio solo debes de colocar este código dentro del layout para que este presente en todos los formularios.
Referencias:
Comentarios
Publicar un comentario