Formuláře – Hláška textové

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

Dobrý den,

nevíte jestli možnost u formulářů validace bez javascriptové hlášky, pouze hlášky textové.

$form->addText(„arrival“, "")
->setRequired("");

$form->addText(„persons“, "")
->setRequired("")
->addRule($form::INTEGER, „Počet osob musí být celé číslo.“);

Děkuji

Václav Mašín
Člen | 26
+
0
-

Pokud se Vám jedná čistě jen o zrušení validace formuláře pomocí javascriptu, tak toho lze dosáhnout jednoduše „vyhozením“ souboru netteForms.js.

Václav Mašín
Člen | 26
+
0
-

A takto se potom ještě nechá vypnout HTML5 validace:

$form->getElementPrototype()->novalidate = 'novalidate';

nm777
Člen | 2
+
0
-

Dobrý den,

nevíte jak nastavit funkci onfocus pro IE, posun prohlížeče IE do pole pro validaci formulářů, u ostatních prohlížečů tato funkce funguje.

Děkuji.

Václav Mašín
Člen | 26
+
0
-

Hmm, tak jestli myslíte ...->setAttribute('autoFocus', true); na položce formuláře, tak to koukám, že v IE skutečně „neautofocusuje“. Jiné řešení neznám, ale vlastně by se mi taky hodilo, tak jestli na něco přijdu, tak ho sem doplním.

Václav Mašín
Člen | 26
+
0
-

Vlastně to nechodí celkem logicky – ten autoFocus atribut je až součástí HTML5. Zatím pořád netuším, jestli to lze nějak správně „nette way“. Jediné, co jsem byl zatím schopen vymyslet, je takto nějak pochybně přímo v kódu šablony:

<script type="text/javascript">
$(document).ready(function()
{
	$("#frmloginForm-email").focus();
});
</script>
Jan Endel
Člen | 1016
+
0
-

jen malý upgrade:

<script type="text/javascript">
$(document).ready(function()
{
        $("{$presenter['loginForm']['email']->htmlId}").focus();
});
</script>
Nox
Člen | 378
+
0
-

Tohle ale killne lazy-loading, něco za něco… osobně bych napsal nějakou JS funkci co by převedla [komponenta, prvek] na identifikátor