Pravidlo Form::FILLED sa neaplikuje na file input v Nette 1.0?
- Matúš Matula
- Člen | 257
Pri nastaveni pravidla Form::FILLED sa neprida atribut data-nette-rules k inputu a validacia na serveri tiez nefunguje..
<?php
$form = new AppForm($this, $name);
$form->addFile('file', 'File')
->addRule(Form::FILLED, 'File cannot be empty');
?>
Je to bug alebo robim nieco zle? Dik..
- Aurielle
- Člen | 1281
Vím, že file inputy jsou pro JS omezené, nicméně nic nebrání přečíst název souboru a cestu: (skript je převzatý z MediaWiki, upravený pro použití v mé aplikaci, v Firefoxu 3.6.8 funguje bezproblémově)
<script type="text/javascript">
/* <![CDATA[ */
function fillDestFilename(fileinput, id)
{
if (!document.getElementById)
{
return;
}
var path = fileinput.value;
// Find trailing part
var slash = path.lastIndexOf('/');
var backslash = path.lastIndexOf('\\');
var fname;
if (slash == -1 && backslash == -1) {
fname = path;
}
else
if (slash > backslash) {
fname = path.substring(slash + 1, 10000);
}
else {
fname = path.substring(backslash + 1, 10000);
}
// Capitalise first letter and replace spaces by underscores
fname = fname.charAt(0).toUpperCase().concat(fname.substring(1, 10000)).replace(/ /g, '-');
// Output result
var destFile = document.getElementById(id);
if (destFile) {
destFile.value = fname;
}
}
/* ]]> */
</script>
- redhead
- Člen | 1313
Také bych byl aspoň pro tu FILLED operaci (resp. pro všechno kromě validace MIME_TYPE).
Jinak co se týče cesty získané přes JS, někdo mi říkal, že některý browser zobrazí pouze jméno souboru a ostatní i cestu k němu (chtěl totiž udělat preview obrázku z lokalního filesystému, což mu bez cesty nešlo..)
Editoval redhead (31. 8. 2010 16:50)
- Matúš Matula
- Člen | 257
redhead napsal(a):
… Jinak co se týče cesty získané přes JS, někdo mi říkal, že některý browser zobrazí pouze jméno souboru a ostatní i cestu k němu (chtěl totiž udělat preview obrázku z lokalního filesystému, což mu bez cesty nešlo..)
Je to tak, kedysi som to tiez skusal.. min. tu validaciu FILLED by som tiez privital.
- David Grudl
- Nette Core | 8228
Že lze zjistit value je pro mě novinka. V době, kdy vznikaly NForms, to žádný významný prohlížeč neumožňoval. Takhle samozřejmě FILLED validaci nic nebrání.
- Jan Tvrdík
- Nette guru | 2595
Mám dojem, že validace na FILLED fungovala v Nette vždycky a přestala až po posledním refactoringu týkajícího se HTML 5.