Zakázat tlačítko Odeslat při odeslání formuláře

Napsal jsem tento kód, abych deaktivoval tlačítka pro odeslání na mém webu po kliknutí:

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

Bohužel neodesílá formulář. Jak to mohu opravit?

UPRAVIT Chtěl bych svázat odeslání, ne formulář 🙂

Odpověď

Udělejte to onSubmit() :

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

Dochází k tomu, že tlačítko úplně deaktivujete dříve, než skutečně spustí událost odeslání.

Pravděpodobně byste také měli přemýšlet o pojmenovávání prvků pomocí ID nebo CLASSes, abyste na stránce nevybírali všechny vstupy typu odeslání.

Ukázka: http://jsfiddle.net/userdude/2hgnZ/

(Poznámka, já používám preventDefault() a return false takže formulář se v příkladu skutečně neodešle; toto při používání nechte vypnuté.)