Nefunkční confirm v AJAXu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
R@da
Člen | 28
+
0
-

Ahoj,
mám problém s potvrzovacím oknem u odkazů s ajaxem.
Tady je kód co mám v šabloně.

<a n:href="markDone! 1" data-confirm="Smazat?" class="ajax" data-id="1">Smazat</a>

<script type="text/javascript">
$(document).ready(function()
{
$.fn.extend({
        triggerAndReturn: function (name, data) {
            var event = new $.Event(name);
            this.trigger(event, data);
            return event.result !== false;
        }
    });

   $('a[data-confirm], button[data-confirm], input[data-confirm]').live('click', function (e) {
        var el = $(this);
        if (el.triggerAndReturn('confirm')) {
            if (!confirm(el.attr('data-confirm'))) {
                return false;
            }
        }
    });
});
</script>

Pokud se klikne na Smazat, zobrazí se správně potvrzovací dialogové okno, jenomže když jej nepotvrdím (kliknu na zrušit), tak se AJAXový dotaz odešle a záznam se mi smaže. Pokud kliknu na OK, smaže se také.
Můžete mi prosím někdo poradit co dělám špatně?
Jestli se to tu už někdy řešilo, tak se omlouvám, ale nikde jsem nenašel odpověď.

Předem děkuji.

na1k
Člen | 288
+
+1
-

asi bych zkusil před return false dát ještě e.preventDefault()

anebo rozumnější řešení – rovnou použít knihovnu od Vojtěcha Dobeše, která data-confirm podporuje (skrze rozšíření – viz repo)

R@da
Člen | 28
+
0
-

Děkuji za odpověď.
Zkusil jsem použít tu knihovnu, funguje to dobře. Jenom se mi změní URL na: example.com/ukol/vypis?taskId=1&do=markDone .. Je to správně, v případě, že to chci poslat AJAXem? V konzoli, když si zobrazím XHR, tak se AJAXový dotaz pošle, jenom mi není jasné proč to změní tu URL.

Předem děkuji.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

R@da: Nenačítáš i rozšíření history.ajax.js? Bez toho by se URL updatovat neměla. Pokud ne, zkus ukázat tvůj aktuální JS kód a co tam načítáš za skripty.

Změní se ta URL bez přenačtení celé stránky?