jQuery, éviter la soumission multiple d'un formulaire

Publié le 02/08/2009
Par Damien
165 mots
DevBlog

Précédemment sur le blog : Retour du Symfony Live 09

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.