Nette 2.1 Toogle & setRequired & addRule

Notice: This thread is very old.
Achse
Member | 44
+
0
-

Ahoj,

mám potíž s toggle(), když mám něco zatogglované, tak se to stále validuje. Jak se dát validace na zatoglvoaných věcí vypnout?

Ukázka:

$this->addSelect('type', "Type", $this->advertiserModel->getLocationTypes())
     ->setRequired("Select type of the location.")
     ->addCondition(Form::EQUAL, array('basic', 'restaurant', 'real_estate_office'))
         ->toggle("address");

$this->addText('address', "Address")
     ->setOption('id', 'address')
         ->setRequired("Enter address.");

Díky.

Last edited by Achse (2014-05-10 17:04)

duke
Member | 650
+
0
-

Musíš to setRequired u address podmínit přes addConditionOn.

Achse
Member | 44
+
0
-

Yep, díky moc. :)

Celý kód:

$this->addText('address', "Address")
            ->setOption('id', 'address')
            ->addConditionOn($this['type'], Form::EQUAL, array('basic', 'restaurant', 'real_estate_office'))
                ->addRule(Form::FILLED, "Enter address.");
duke
Member | 650
+
0
-

V novějších verzích Nette (>=2.1.?) lze i v těchto případech místo:

		->addRule(Form::FILLED, "Enter address.");

… použít pro zápis jednodušší:

		->setRequired("Enter address.");

A také místo Form::EQUAL se tu spíše hodí Form::IS_IN. Nicméně v aktuální verzi bude fungovat obojí, neboť interně jde o totéž (otázkou však je, zda to tak i dobudoucna zůstane a proto doporučuji spíše Form::IS_IN).

Last edited by duke (2014-05-23 15:15)