QuickForm - addRule() на группу элементов == проблема

berkut

Новичок
QuickForm - addRule() на группу элементов == проблема

Почему-то не работает такая конструкция:
PHP:
require_once 'HTML/QuickForm.php';

$form =& new HTML_QuickForm('reg_form', 'POST', null, null, null, true);
$line[] =& HTML_QuickForm::createElement('text', 'gas_pas', 'Gas Pass Number', $text_params);
$line[] =& HTML_QuickForm::createElement('static', null, null, 'If you already have one, please enter it');
$form->addGroup($line, 'gas_pas_group', 'Gas Pass Number', ' ');
$form->addRule('gas_pas_group', 'Fill in', 'required');
$form->addRule('gas_pas_group', 'Only numbers', 'numeric');
$form->validate();
$form->display();
В документации: If the element is in fact a group, it will be considered as a whole, an array of group elements' values will be passed to validation function. To validate grouped elements as separate entities, use addGroupRule().

Т.е. код должен работать
О май гад! это всё мой плохой английский. Тогда вообще не понятно поведение addRule() - в таком случае не будет работать ни одно из встроеных правил валидации
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: berkut
Тогда вообще не понятно поведение addRule() - в таком случае не будет работать ни одно из встроеных правил валидации
Действительно не будет, но можно написать своё правило специально для этой цели.
 

magic

lancer
Да. Вот кусок примера.

PHP:
<?php
$form->addGroup($idGrp, 'id', 'ID:', ',&nbsp');
// Complex rule for group's elements
$form->addGroupRule('id', array(
    'lastname' => array(
        array('Name is letters only', 'lettersonly'),
        array('Name is required', 'required')
    ),
    'code' => array(
        array('Code must be numeric', 'numeric')
    )
));
?>
Только в некоторыых случаях замечены странности, например не обрабатыва.тся два правила на одну переменную в группе.
 
Сверху