| 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: 13 let
|
|||
0