Chybové hlášky vedle provků se přestaly zobrazovat

- stepos
- Člen | 36
Ahoj, omlouvám se, možná je to triviální, ale trápím se několik
hodin.
Mám obyč formulář, vykresluji ho automaticky šablonou v latte.
{block content}
{control personalForm}
{/block}
Problém je, že se mi přestaly ukazovat chybové hlášky vedle políček, ale zobrazuje se jen alert javascriptu.
Co se mohlo stát?
Formulář vytvářím pomocí továrny v metodě create ve třídě
personalFormFactory.php
public function create($withOtherPayer=0)
{
$form=new Form;
$form->addGroup(self::L_LEGEND);
$form->addText('firstName', self::L_FIRST_NAME)
->setRequired(self::L_REQURIED. strtolower(self::L_FIRST_NAME));
$form->addText('familyName', self::L_FAMILY_NAME)
->setRequired(self::L_REQURIED. strtolower(self::L_FAMILY_NAME));
$form->addText('street', self::L_STREET)
->setRequired(self::L_REQURIED. strtolower(self::L_STREET))
->addRule(Form::PATTERN, self::E_STREET,'\D+');
$form->addText('numberAtStreet', self::L_NUMBER_AT_STREET)
->setRequired(self::L_REQURIED. strtolower(self::L_NUMBER_AT_STREET))
->addRule(Form::INTEGER, self::L_NUMBER_AT_STREET.self::E_NUMERIC);
$form->addText('numberInCity', self::L_NUMBER_IN_CITY)
->addCondition(Form::FILLED)
->addRule(Form::INTEGER, self::L_NUMBER_IN_CITY.self::E_NUMERIC);
$form->addText('city', self::L_CITY)
->setRequired(self::L_REQURIED. strtolower(self::L_CITY));
$form->addText('zip', self::L_ZIP)
->setRequired(self::L_REQURIED. strtolower(self::L_ZIP))
->addRule(Form::PATTERN, 'PSČ musí mít 5 číslic', '([0-9]\s*){5}');
if($withOtherPayer)
{
$form->addGroup(self::L_LEGEND_P);
$form->addText('firstNamePayer', self::L_FIRST_NAME)
->setRequired(self::L_REQURIED. strtolower(self::L_FIRST_NAME));
$form->addText('familyNamePayer', self::L_FAMILY_NAME)
->setRequired(self::L_REQURIED. strtolower(self::L_FAMILY_NAME));
$form->addText('streetPayer', self::L_STREET)
->setRequired(self::L_REQURIED. strtolower(self::L_STREET))
->addRule(Form::PATTERN, self::E_STREET,'\D+');
$form->addText('numberAtStreetPayer', self::L_NUMBER_AT_STREET)
->setRequired(self::L_REQURIED. strtolower(self::L_NUMBER_AT_STREET))
->addRule(Form::INTEGER, self::L_NUMBER_AT_STREET.self::E_NUMERIC);
$form->addText('numberInCityPayer', self::L_NUMBER_IN_CITY)
->addCondition(Form::FILLED)
->addRule(Form::INTEGER, self::L_NUMBER_IN_CITY.self::E_NUMERIC);
$form->addText('cityPayer', self::L_CITY)
->setRequired(self::L_REQURIED. strtolower(self::L_CITY));
$form->addText('zipPayer', self::L_ZIP)
->setRequired(self::L_REQURIED. strtolower(self::L_ZIP))
->addRule(Form::PATTERN, 'PSČ musí mít 5 číslic', '([0-9]\s*){5}');
}
$form->addSubmit('send', self::L_SEND);
// $form->onSuccess[] = array($this, 'PersonalFormSucceeded');
return $form;
}
A v presenteru:
public function renderDefault($country,$type,$typeOfPay)
{
$this->country = $country;
$this->type = $type;
$this->typeOfPay=$typeOfPay;
}
protected function createComponentPersonalForm()
{
if($this->typeOfPay=='other') $withOtherPayer=1; else $withOtherPayer=0;
$form = (new \App\Forms\PersonalFormFactory())->create($withOtherPayer);
$form->onSuccess[] = array($this, 'personalFormSucceeded');
return $form;
}
public function personalFormSucceeded($form,$values)
{
$this->flashMessage('Pokračujeme dál v objednávce...');
$this->forward("PayForm:default");
}
Editoval stepos (4. 5. 2016 12:57)

- Šaman
- Člen | 2668
Nejspíš se stalo to, že jsi přilinkoval soubor
netteForms.js? Většina chyb je pak zachycena javascriptem dřiv,
než se vůbec odešle formulář. Teprve pokud tohle projde (třeba vyplý JS),
tak se pak znovu validuje na straně serveru a to vypíše chybu
u políčka.
Pokud se jedná o povinná pole, tak ty zachycují už prohlížeče samy
o sobě, takže tam ani vypnutá JS validace nepomůže a vyskočí něco
(alert, bublina, záleží na prohlížeči).

- stepos
- Člen | 36
Díky.
No, to jsem taky hledal, ale kdyby byl špatný netteForms.js, tak firebug
hlásí chybu, normálně s ním pracuje.
Nevěděl jsem, že červené hlášky vedle políčka vykresluje php, myslel
jsem, že to dělá taky js.
A co s tím mohu dělat? Když zkusím ten js nenačítat, skutečně mi
firefox začne cpát svoje bubliny s texty typu „vyplň pole v požadovaném
formátu“ – hlášky, které jsem vůbec nezadával.