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

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)

Aurielle
Člen | 1281
+
0
-

Nalinkuj si netteForms.js.

Tomáš Votruba
Moderator | 1114
+
0
-

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)

Aurielle
Člen | 1281
+
0
-

Ne, vlastní callbacky se nemají jak validovat. (musel by sis to sám nějak zajaxovat)