Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- loov
- Člen | 49
Čus lidi,
řeším teďka jednu takovou záhadu. Nejde mi odeslat formulář. Po kliknutí
na tlačítko se mi akorád skrze javascript přidá span-error. Myslim si ze je
to zpusobene LiveFormValidací, ale nemůžu dohledat chybu. Když přidám
prázdnou definici textarei, ale v šabloně jí nikde nevypíšu, tak se
formulář po kliknutí na tlačítko snaží odeslat.
<?php
$form = new AppForm($this, 'triglavKrok5Form');
$form->addGroup('pojistnik')
->setOption('label', 'Pojistník:');
$form->addText('pojistnikJmeno', 'Jméno:')
->addRule('Checker::isName', "Zadejte jméno pojistníka.")
->addFilter('strtolower')
->addFilter('ucfirst');
$form['pojistnikJmeno']->getControlPrototype()->class('with_help');
$form->addText('pojistnikPrijmeni', 'Příjmení:')
->addRule('Checker::isName', "Zadejte příjmení pojistníka.")
->addFilter('strtolower')
->addFilter('ucfirst');
$form['pojistnikPrijmeni']->getControlPrototype()->class('with_help');
$form->addText('pojistnikTitul', 'Titul:');
$form['pojistnikTitul']->getControlPrototype()->class('with_help');
$form->addText('pojistnikDatumNarozeni', 'Datum narození:')
->addRule('Checker::isDate', "Zadejte datum narození pojistníka.");
$form['pojistnikDatumNarozeni']->getControlPrototype()->class('with_help');
$form->addText('pojistnikRc', 'Rodné číslo:')
->addRule('Checker::isNaturalNumber', "Rodné číslo nesmí obsahovat nečíselné znaky.")
->addRule('Checker::checkLength', "Rodné číslo musí mít 9 nebo 10 číslic.", array(9,10))
->addRule('Checker::isRc', "Zadejte rodné číslo pojistníka.");
$form['pojistnikRc']->getControlPrototype()->class('with_help');
$form->addText('pojistnikTelefon', 'Telefon:')
->addRule('Checker::isTelefon', "Zadejte platný telefon pojistníka.");
$form['pojistnikTelefon']->getControlPrototype()->class('with_help');
$form->addText('pojistnikEmail', 'Email:')
->addRule('Checker::isEmail', "Zadejte email pojistníka.");
$form['pojistnikEmail']->getControlPrototype()->class('with_help');
$form->addText('pojistnikBankaUcet', 'Bankovní účet / kód banky:')
->addCondition(form::FILLED)
->addRule('Checker::isNaturalNumber', 'Zadejte platné číslo bankovního účtu pojistníka.');
$form['pojistnikBankaUcet']->getControlPrototype()->class('with_help');
$form->addText('pojistnikBankaKod', '')
->addCondition(form::FILLED)
->addRule('Checker::checkLength', 'Kód banky pojistníka musí mít %d znaky.', 4)
->addRule('Checker::isNaturalNumber', 'Kód banky pojistníka musí být číslo.');
$form['pojistnikBankaKod']->getControlPrototype()->class('with_help');
$form['pojistnikBankaKod']->getControlPrototype()->size = 5;
$form->addCheckbox('pojistnikTotoznaAdresa', 'Adresa bydliště totožná s místem pojištění');
$form['pojistnikTotoznaAdresa']->getControlPrototype()->class('with_help');
$form->addText('pojistnikObec', 'Obec:')
->addConditionOn($form['pojistnikTotoznaAdresa'], ~Form::FILLED)
->addRule('Checker::isName', "Zadejte název obce pojistníka.");
$form['pojistnikObec']->getControlPrototype()->class('adresa_pojistnik with_help');
$form->addText('pojistnikUlice', 'Ulice:')
->addConditionOn($form['pojistnikTotoznaAdresa'], ~Form::FILLED)
->addRule('Checker::isName', "Zadejte název ulice pojistníka.");
$form['pojistnikUlice']->getControlPrototype()->class('adresa_pojistnik with_help');
$form->addText('pojistnikCp', 'Číslo popisné:')
->addConditionOn($form['pojistnikTotoznaAdresa'], ~Form::FILLED)
->addRule('Checker::isNaturalNumber', "Zadejte číslo popisné pojistníka.");
$form['pojistnikCp']->getControlPrototype()->class('adresa_pojistnik with_help');
$form->addText('pojistnikPsc', 'PSČ:')
->addConditionOn($form['pojistnikTotoznaAdresa'], ~Form::FILLED)
->addRule('Checker::isPsc', 'Zadejte platné PSČ pojistníka.');
$form['pojistnikPsc']->getControlPrototype()->class('adresa_pojistnik with_help');
$form->addCheckbox('pojistnikKorespondenceTotozna', 'Korespondenční adresa totožná s trvalou');
$form['pojistnikKorespondenceTotozna']->getControlPrototype()->class('with_help');
$form->addText('pojistnikKorespondenceObec', 'Obec:')
->addConditionOn($form['pojistnikKorespondenceTotozna'], ~Form::FILLED)
->addRule('Checker::isName', "Zadejte název obce pro korespondenci pojistníka.");
$form['pojistnikKorespondenceObec']->getControlPrototype()->class('adresa_pojistnik_korespondence with_help');
$form->addText('pojistnikKorespondenceUlice', 'Ulice:')
->addConditionOn($form['pojistnikKorespondenceTotozna'], ~Form::FILLED)
->addRule('Checker::isName', "Zadejte název ulice pro korespondenci pojistníka.");
$form['pojistnikKorespondenceUlice']->getControlPrototype()->class('adresa_pojistnik_korespondence with_help');
$form->addText('pojistnikKorespondenceCp', 'Číslo popisné:')
->addConditionOn($form['pojistnikKorespondenceTotozna'], ~Form::FILLED)
->addRule('Checker::isNaturalNumber', "Zadejte číslo popisné pro korespondenci pojistníka.");
$form['pojistnikKorespondenceCp']->getControlPrototype()->class('adresa_pojistnik_korespondence with_help');
$form->addText('pojistnikKorespondencePsc', 'PSČ:')
->addConditionOn($form['pojistnikKorespondenceTotozna'], ~Form::FILLED)
->addRule('Checker::isPsc', 'Zadejte PSČ pro korespondenci pojistníka.');
$form['pojistnikKorespondencePsc']->getControlPrototype()->class('adresa_pojistnik_korespondence with_help');
$form->addGroup('pojisteny')
->setOption('label', 'Pojištěný:');
$form->addCheckbox('pojistenyTotozny', 'Pojištěný totožný s pojistníkem');
$form['pojistenyTotozny']->getControlPrototype()->class('with_help');
$form->addText('pojistenyJmeno', 'Jméno:')
->addFilter('strtolower')
->addFilter('ucfirst')
->addConditionOn($form['pojistenyTotozny'], ~Form::FILLED)
->addRule('Checker::isName', "Zadejte jméno pojištěného.");
$form['pojistenyJmeno']->getControlPrototype()->class('with_help');
$form->addText('pojistenyPrijmeni', 'Příjmení:')
->addFilter('strtolower')
->addFilter('ucfirst')
->addConditionOn($form['pojistenyTotozny'], ~Form::FILLED)
->addRule('Checker::isName', "Zadejte příjmení pojištěného.");
$form['pojistenyPrijmeni']->getControlPrototype()->class('with_help');
$form->addText('pojistenyTitul', 'Titul:');
$form['pojistenyTitul']->getControlPrototype()->class('with_help');
$form->addText('pojistenyDatumNarozeni', 'Datum narození:')
->addConditionOn($form['pojistenyTotozny'], ~Form::FILLED)
->addRule('Checker::isDate', "Zadejte datum narození pojištěného.");
$form['pojistenyDatumNarozeni']->getControlPrototype()->class('with_help');
$form->addText('pojistenyRc', 'Rodné číslo:')
->addConditionOn($form['pojistenyTotozny'], ~Form::FILLED)
->addRule('Checker::isRc', "Zadejte rodné číslo pojištěného.");
$form['pojistenyRc']->getControlPrototype()->class('with_help');
$form->addText('pojistenyTelefon', 'Telefon:')
->addConditionOn($form['pojistenyTotozny'], ~Form::FILLED)
->addRule('Checker::isTelefon', "Zadejte telefon pojištěného.");
$form['pojistenyTelefon']->getControlPrototype()->class('with_help');
$form->addText('pojistenyEmail', 'Email:')
->addConditionOn($form['pojistenyTotozny'], ~Form::FILLED)
->addRule('Checker::isEmail', "Zadejte platný email pojištěného.");
$form['pojistenyEmail']->getControlPrototype()->class('with_help');
$form->addText('pojistenyBankaUcet', 'Bankovní účet / kód banky:')
->addConditionOn($form['pojistenyTotozny'], ~Form::FILLED)
->addCondition(form::FILLED)
->addRule('Checker::isNaturalNumber', 'Zadejte platné číslo bankovního účtu pojištiného.');
$form['pojistenyBankaUcet']->getControlPrototype()->class('with_help');
$form->addText('pojistenyBankaKod', '')
->addConditionOn($form['pojistenyTotozny'], ~Form::FILLED)
->addCondition(form::FILLED)
->addRule('Checker::checkLength', 'Kód banky pojištěného musí mít %d znaky.', 4)
->addRule('Checker::isNaturalNumber', 'Kód banky pojištěného musí být číslo.');
$form['pojistenyBankaKod']->getControlPrototype()->class('with_help');
$form['pojistenyBankaKod']->getControlPrototype()->size = 5;
$form->addText('pojistenyObec', 'Obec:')
->addConditionOn($form['pojistenyTotozny'], ~Form::FILLED)
->addRule('Checker::isName', "Zadejte název obce pojištěného.");
$form['pojistenyObec']->getControlPrototype()->class('adresa_pojisteny with_help');
$form->addText('pojistenyUlice', 'Ulice:')
->addConditionOn($form['pojistenyTotozny'], ~Form::FILLED)
->addRule('Checker::isName', "Zadejte název ulice pojištěného.");
$form['pojistenyUlice']->getControlPrototype()->class('adresa_pojisteny with_help');
$form->addText('pojistenyCp', 'Číslo popisné:')
->addConditionOn($form['pojistenyTotozny'], ~Form::FILLED)
->addRule('Checker::isNaturalNumber', "Zadejte číslo popisné pojištěného.");
$form['pojistenyCp']->getControlPrototype()->class('adresa_pojisteny with_help');
$form->addText('pojistenyPsc', 'PSČ:')
->addConditionOn($form['pojistenyTotozny'], ~Form::FILLED)
->addRule('Checker::isPsc', 'Zadejte PSČ pojištěného.');
$form['pojistenyPsc']->getControlPrototype()->class('adresa_pojisteny with_help');
$form->addGroup('misto_pojisteni')
->setOption('label', 'Adresa místa pojištění:');
$formObec = $form->addText('obec', 'Obec:');
$formUlice = $form->addText('ulice', 'Ulice:');
$formCp = $form->addText('cp', 'Číslo popisné:');
$formCo = $form->addText('co', 'Číslo orientační:');
$formPsc = $form->addText('psc', 'PSČ:');
if ($this->settings['addressDisabled'] === TRUE)
{
$formCp->setDisabled()
->setValue($this->data->get_cp());
$formCo->setDisabled()
->setValue($this->data->get_co());
$formUlice->setDisabled()
->setValue($this->data->get_ulice());
$formObec->setDisabled()
->setValue($this->data->get_obec());
$formPsc->setDisabled()
->setValue($this->data->get_psc());
}
$form->addGroup('akce')
->setOption('label', 'Akce:');
$form->addSubmit('ok', $this->settings['okButtonLabel'])
->onClick = $this->onOkClick;
if ($this->settings['cancelButtonDisabled'] == FALSE)
{
$form->addSubmit('cancel', 'Smaž formulář!')
->setValidationScope(FALSE) // formular se nebude validovat
->onClick = $this->onCancelClick;
}
if ($this->settings['backButtonDisabled'] == FALSE)
{
$form->addSubmit('back', 'Zpět!')
->setValidationScope(FALSE) // formular se nebude validovat
->onClick = $this->onBackClick;
}
$defaults = $this->data->getData(self::getFields());
if(!$this->data->isset_pocatekPojisteni())
$defaults['pocatekPojisteni'] = date("d.m.Y", mktime(0, 0, 0, date("m") , date("d")+1, date("Y")));
$form->setDefaults($defaults);
foreach ($this->hiddens as $key => $value)
{
$form->addHidden($key, $value);
}
if ($this->settings['formValidation'] == 'default')
{
}
elseif ($this->settings['formValidation'] === null)
{
$form->getRenderer()->setClientScript(null);
}
elseif ($this->settings['formValidation'] == 'liveClientScript')
{
$form->getRenderer()->setClientScript(new LiveClientScript($form));
}
else
{
throw new Exception('Neznamy form validator.');
}
// vratime formular pripraveny k vykresleni
return $form;
?>
Editoval loov (15. 2. 2011 15:15)
- loov
- Člen | 49
Tak už jsem to vyřešil. Jinak problém byl v tom, že jsem používal starší verzi LiveFormValidation skriptu. Ve formuláři jsem měl nadefinovaný radiolist. A ten právě fungoval jako díra do té validace a formulář se kvúli tomu odesílal. Verze kterou používám teď, která je zároveň i ke stažení mezi doplňky, je už v pořádku.