我需要在提交时进行自定义验证,我的编码如下:
<?php
require_once("{$CFG->libdir}/formslib.php");
class pool_status_form extends moodleform {
function definition() {
global $DB, $USER, $qnsCount;
$mform =&$this->_form;
//number of question per user
$mform->addElement('text', 'peruser', get_string('peruserquestion', 'qpool'), array('id' => 'peerqn'));
$mform->addRule('peruser', null, 'required', null, 'client');
$mform->addRule('peruser', null, 'numeric', null, 'client');
$mform->setType('peruser', PARAM_RAW);
//$this->add_action_buttons(false, 'SAVE');
$mform->addElement('submit', 'subbtn', get_string("buttonlabel", "qpool"));
}
public function validation($data, $files) {
$errors = parent::validation($data, $files);
if (($data['peruser'])>3) {
$errors['peruser'] = "Error..";
}
return $errors;
}
}
当我点击提交按钮时它直接提交,它没有检查我在我的
中提到的验证'功能验证'。我该怎么办?
答案 0 :(得分:1)
验证&#39;函数在服务器上运行。只需调用$ form-&gt; get_data(),它就会触发。
另外,为什么要添加&#39; required&#39;统治两次? 为什么数据类型为PARAM_RAW - 对我来说它看起来像PARAM_INT。