Le 02/08/2009 dans DevBlog

jQuery, éviter la soumission multiple d'un formulaire

Le morceau de code qui suit permet d’éviter la soumission multiple d’un formulaire en désactivant l’event submit d’un formulaire et en mettant les input submit en disabled dès la première soumission effectuée.

J’ai été incapable de trouver quelque chose de correct, il existe même des plugins jQuery pour faire ça mais ils sont mauvais et inefficace (oui, on peux soumettre un formulaire autrement que par un click! sur un input:submit…). Donc voilà je publie mon code, il sera peut être utile à toi, visiteur de l’internet mondial :

$(document).ready(function() {
$('form').submit(function() {
if(typeof jQuery.data(this, "disabledOnSubmit") == 'undefined') {
jQuery.data(this, "disabledOnSubmit", { submited: true });
$('input[type=submit], input[type=button]', this).each(function() {
$(this).attr("disabled", "disabled");
});
return true;
}
else
{
return false;
}
});
});

Il s’agit en même temps d’un bon exemple d’utilisation de jQuery.data :)

PS : peux poser des problèmes avec les solution d’autocomplete pour jquery :/

PPS : non ce blog n’est pas mort, il survit.