我想应用 Moodle 规则类型:使用 mform 元素进行比较和格式化。 对于名字元素,输入必须允许格式。 对于指定元素,输入必须与给定的任何数组值匹配。我给出了“比较”。两者似乎都不起作用。
<?php
require('config.php');
require_once($CFG->libdir.'/formslib.php');
class active_form extends moodleform {
function definition() {
$mform = $this->_form;
$fileoptions = $this->_customdata['fileoptions'];
$mform->addElement('text', 'forename', get_string('forename', 'form'),
array('name'=>'forename[]'));
$mform->setType('forename', PARAM_RAW);
$mform->addRule('forename', get_string('forename'), 'required', $format='$NAME_00_00#',
'client', $force=true);
$mform->addElement('text', 'designation', get_string('designation', 'form'),
array('name'=>'designation[]'));
$mform->setType('designation', PARAM_RAW);
$mform->addRule('designation', get_string('err_designation'), 'compare',
array('designation' =>'IT', 'Mechanical', 'EEE', ECE'), 'neq');
$this->add_action_buttons();
}
function validation($data, $files) {
$errors = parent::validation($data, $files);
return $errors;
}
}
?>
如果您需要特定类型的输入,您可以进行下拉菜单:
$mform->addElement('select', 'test','Feedback', array(
''=>'',
'good'=>'Good',
'soso'=> 'So-So',
'bad'=>'Bad'
));
$mform->setDefault('test', '');
$mform->setType('test', PARAM_TEXT);