Autor | Zpráva | ||
---|---|---|---|
Ťunťa Profil * |
#1 · Zasláno: 16. 11. 2012, 17:19:25
Zdravím,
mám následující kod, který předpokládá využití Nette frameworku $form->addText($name, $label) ->setType('email') ->setEmptyValue('@') ->addRule(\Nette\Forms\Form::EMAIL, 'Zadejte e-mail ve formátu jméno@doména.cz'); a potřeboval bych přiřadit tomuto e-mail inputu ( ->setRequired('Napište e-mail') ), ale až po teto deklaraci, něco jako: $form[$name]->setRequired = 'Napište e-mail'; nebo zjistit jak mohu přiřazení metody podmínit (jinak než že celou deklaraci dvakrát umístím do podmínky) Díky |
||
Rellik Profil |
#2 · Zasláno: 16. 11. 2012, 17:52:51
S Nette programuji, ale z tvé otázky moc nechápu o co ti jde... Jestli chceš aby email byl vyplněn pokaždé, tak to můžeš udělat:
$form->addText('email', 'E-mail:') ->addRule($form::FILLED, 'Email je nutné vyplnit') ->addRule($form::EMAIL, 'Nesprávně uvedený email!'); |
||
Norman Profil |
Jestli tě správně chápu :) tak chceš v jedné situaci, aby nebyl validován input a v druhé ano. Zároveň se ti ovšem nelíbí kód duplikovat. Rozumím tomu správně?
|
||
joe Profil |
#4 · Zasláno: 17. 11. 2012, 11:21:16
$email = $form->addText($name, $label) ->setType('email') ->setEmptyValue('@') ->addRule(\Nette\Forms\Form::EMAIL, 'Zadejte e-mail ve formátu jméno@doména.cz'); if (condition) { $email->setRequired('Naipšte e-mail'); } |
||
Časová prodleva: 4 dny
|
|||
Ťunťa Profil * |
#5 · Zasláno: 21. 11. 2012, 09:59:48
Norman na to kápnul, díky joemu za řešení.
|
||
Ťunťa Profil * |
#6 · Zasláno: 21. 11. 2012, 11:11:05
Které mi teda bohužel nefunguje, pole je required vždy. (zkoušel jsem přesně co posílal joe)
$email = $form->addText($name, $label) ->setType('email') ->setEmptyValue('@') ->addRule(\Nette\Forms\Form::EMAIL, 'Zadejte e-mail ve formátu jméno@doména.cz'); if (false) { $email->setRequired('Naipšte e-mail'); } |
||
Rfilip Profil |
#7 · Zasláno: 21. 11. 2012, 15:35:12
false se vyhodnotí jako true - viz zde php.net/manual/en/language.types.boolean.php
místo toho použij 0 nebo "" |
||
Časová prodleva: 5 dní
|
|||
Ťunťa Profil * |
#8 · Zasláno: 26. 11. 2012, 09:49:28 · Upravil/a: Ťunťa
Díky za informaci to jsem nevěděl. Ve svém projektu však používám proměnnou, která je 1 nebo 0. Používám také CSS pro obarvení required elementů
.required label { color: maroon } Ty labely, které by měly být required, jsou obarvené správně, nicméně validace požaduje i ty neobarvené. Používám live-form-validation 2.0 ze stránek nette. Má někdo podobné zkušenosti? Oprava: problém přetrvá i po vypnutí live-form-validation. Je to nejspíš způsobeno chybou v kódu. Používám cyklus který mi vybírá z databáze informace o inputech, které se mají zobrazit, ty ukládá do pole (které je definované na úrovni třídy) Pro představu: foreach ($this->database->table('input_list')->where... { ... $this->inputInfo=array('ID' => $application->id, 'TYPE' => $application->inputs->type, 'LABEL' => $label, 'REQ' => $application->required, ); } |
||
Amunak Profil |
#9 · Zasláno: 26. 11. 2012, 11:48:55
Rfilip:
„false se vyhodnotí jako true“ Kde to tam vidíš? "false" se vyhodnotí jako true, false rozhodně ne.
|
||
Ťunťa Profil * |
#10 · Zasláno: 27. 11. 2012, 22:27:33
K tématu prosím. ;-)
|
||
Časová prodleva: 11 let
|
0