Validace Formu pomocí Alert
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Tomáš Votruba
- Moderator | 1114
Používám třídu Form a Nette 2.0, zkoušel jsem hledat a krom AppForm (které zatím nechci použít) jsem nic ohledem ověřování pomocí alert nenašel. Potřebuji to z důvodu nemožnosti změny velikosti formulářového prostoru vypisovat právě pomocí alert.
Podoba formuláře:
<?php
// kontrola, zda login už neexistuje
function checkLoginFree($item){
$result = dibi::query('SELECT [id] FROM users WHERE login=%s', $item->getValue());
return (count($result) === 0);
}
// registrační formulář
$reg_form = new Form;
$reg_form->addText('login', 'Jméno:',15)
->addRule(Form::FILLED, 'Zadejte své jméno')
->addRule('checkLoginFree', 'Tento login už je registrován.');
$reg_form->addPassword('password', 'Heslo:',15)
// ->addRule(Form::FILLED, 'Zadejte Vaše heslo')
->addRule(Form::MIN_LENGTH,'Zadané heslo je příliš krátké, zvolte si heslo alespoň o %d znacích.',5);
$reg_form->addPassword('password_check', '...znovu:',15)
->addRule(Form::EQUAL, 'Hesla se neshodují.',$reg_form["password"]);
$reg_form->addText('email', 'Email:',15)
->setEmptyValue('@')
->addRule(Form::EMAIL, 'Zadejte správný email');
$reg_form->addRadioList('radio','Pohlaví',array(0 => ' muž',1 => ' žena'))
->addRule(Form::FILLED, 'Vyberte jedno z pohlaví');
$reg_form->addSubmit('registrace', 'Registrovat');
?>
Editoval Schmutzka (19. 11. 2010 19:31)
- Tomáš Votruba
- Moderator | 1114
Pomohlo, díky moc.
Tu funkci checkLoginFree už js zřejmě nezachytí, že? (Přímo to
nevadí, jen by to bylo lepší.)
Pak se mi to tam ještě pralo s jiným js (návod pro ostatní, kterým by to ani po nalinkování nešlo).
Editoval Schmutzka (19. 11. 2010 20:08)