Nette 2.4 nefunguje jsCallback
- McLel
- Člen | 12
Zdravim,
updatoval jsem na nette 2.4 a v jednom projektu, kde jsem vyuzival dependent select box podle tohoto navodu https://blog.nette.org/…-and-pure-js, zacalo nette hazet varovani „Including block jsCallbackSecond with content type HTML into incompatible type HTMLJS.“. Pri preskoceni varovani select nefunguje.
Mohl by mi nekdo prosim poradit jak to napravit?
- McLel
- Člen | 12
Update:
Podle vseho je ve verzi 2.4 nutne mit u definice javascriptu tag
<script>
{define #jsCallback}
<script>
$('#{$control["selectForm"][$input]->htmlId}').on('change', function() {
$.nette.ajax({
type: 'POST',
url: '{link {$link}!}',
data: {
'value': $(this).val(),
}
});
});
</script>
{/define}
Je tu ale hned dalsi problem, konzole pise chybu jquery-3.0.0.min.js:2 Uncaught Error: Syntax error, unrecognized expression: #„frm-selectForm-first“
Tedy místo „#frm-selectForm-first“ nette vytvoří #„frm-selectForm-first“
Jde to nejak opravit?
Edit:
Zatim jsem to vyresil takto:
var input = "#" + {$control["selectForm"][$input]->htmlId};
$(input).on('change', function() {
Ale pote hned nasledovala dalsi chyba:
jquery-3.0.0.min.js:4 POST http:// 127.0.0.1/test/www/%22/test/www/homepage/?do=firstChange%22 500 (Internal Server Error)
Tedy nesmyslna URL navic doplnena o „%22“
Reseni: oproti navodu je ve verzi 2.4 nutne odstranit uvozovky u URL
$.nette.ajax({
type: 'POST',
url: {link {$link}!},
data: {
'value': $(this).val(),
}
});
Pote jiz konecne dependent select box opet funguje.
Editoval McLel (9. 7. 2016 16:38)
- David Grudl
- Nette Core | 8239
Je to přesně jak píšeš, on vlastně ten původní příklad byl „špatně“, jenže v Latte 2.3 to prošlo a Latte 2.4 už řve.
Neměl bys chuť poslat PR do https://github.com/…th-ajax.texy