Podivné chování makra n:href

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

Při odeslání formuláře, který neprojde složitější validací v PHP, se někdy (kdy přesně se mi nepodařilo zatím zjistit) u odkazů v tagu <a>, které jsou tvořeny přes makro n:href, nevytvoří HTTP odkaz na akci presenteru, ale do atributu href je vloženo HTML formulářového prvku, který byl označen jako chybný. Nesetkali jste se s tím už někdy?

Nette 2.1dev

Editoval sKopheK (10. 10. 2013 21:05)

David Matějka
Moderator | 6445
+
0
-

hod sem nejaky kusy kodu – co je presne v tom n:href, jak se pripadne zkompiluje sablone, co se do toho vygeneruje atd.

Editoval matej21 (11. 10. 2013 0:18)

sKopheK
Člen | 207
+
0
-
{block content}
{form passwordForm}
...
{/form}

<div class="text-center">
    <a n:href="profile" class="btn btn-default">{_"Back to Profile"}</a>
</div>

Před odesláním formuláře je vygenerovaný odkaz v pořádku, ale když se formulář odešle, zpracuje, je tam chyba a vypíše se znova (prvek s chybou má css classu error), výše zmíněný tag <a> je následující:

<a class="btn btn-default" href="&lt;input type=&quot;password&quot; class=&quot;form-control error&quot; id=&quot;frm-passwordForm-password&quot; link=&quot;profile&quot;&gt;">Zpět na profil</a>
David Matějka
Moderator | 6445
+
0
-

tak tohle vidim fakt poprvi :)
koukni jak se latte sablona zkompilovala, najdes to v temp/cache/_Nette.FileTemplate/ + odpovidajici nazev

a tohle fakt vratilo primo nette, jo? nemas nekde nejakej javascript, co preprznil DOM? 

sKopheK
Člen | 207
+
0
-

Problém bude u generování odkazu přes makro n:href, které se přeloží na

htmlSpecialChars($_control->link("profile"))

Odkaz se vygeneruje v pořádku, pokud není ve formuláři chyba (anebo se nevypíše chybný prvek), v opačném případě se tam objeví HTML prvku s chybou.