Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
loov
Člen | 49
+
0
-

Č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
+
0
-

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.