Naja – změna textu submit tlačítka při odesílání formuláře

pavelinnuendo
Člen | 33
+
0
-

Ahoj,
mám v Nette formulář, který má prvek:

$form->addText('name', '')->setRequired('Zadejte prosím jméno');

Nyní potřebuji, aby po odeslání takového formuláře se změnil text na submit tlačítku (protože je to api a může to chvíli trvat), to udělám takto:

$(document).ready(function() {
    $("#sendForm:submit").click(function() {
      $(this).html(
        '<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> Ukládám...'
      );
    });
});

Potíž je v tom, že když to povinné pole name není vyplněno (a vyskočí alert s tím textem), změní se obsah toho submit tlačítka též. Jak mohu docílit toho, aby se tento kód provedl jen po úspěšné validaci formuláře?

Díky!

Pepino
Člen | 257
+
+1
-

Tohle nemá s najou nic společného.
https://github.com/…etteForms.js#L204

$(document).ready(function() {
	$("#sendForm:submit").click(function() {
		if (Nette.validateForm($(this).closest('form'), true)) {
	    	$(this).html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> Ukládám...');
		}
    });
});

Nějak takhle by to mohlo fungovat.

pavelinnuendo
Člen | 33
+
0
-

Aha, díky moc! Navěsil jsem to přímo na ten formulář, přes to closest mi to nefungovalo.

$(document).ready(function() {
    $('form#frm-leadForm').submit(function(e) {
        if (Nette.validateForm(this, true)) {
            $("#sendForm").html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> Ukládám...');
        }
    });
});