Validation
中的 filepicker
无效。我的表单是 add_form.php
require_once("{$CFG->libdir}/formslib.php");
class add_form extends moodleform {
function definition() {
global $DB;
$mform =&$this->_form;
// add question title.
$mform->addElement('header','displayinfo', 'Add/Edit Question');
$mform->addElement('editor', 'question', 'Question');
$mform->addRule('question', null, 'required', null, 'client');
$mform->setType('question', PARAM_RAW);
$maxbytes = 0;
$mform->addElement('filepicker', 'answerfile', get_string('file'), null,
array('maxbytes' => $maxbytes, 'accepted_types' => array('document','.txt', '.pdf')));
$mform->addRule('answerfile', null, 'required', null, 'client');
$mform->setType('answerfile', PARAM_RAW);
$mform->addElement('hidden', 'blockid');
$mform->setType('blockid', PARAM_RAW);
$mform->addElement('hidden', 'courseid');
$mform->setType('courseid', PARAM_RAW);
$this->add_action_buttons(false, 'SAVE');
}
}
此处第一个字段required validation
(question
)正常运行。但validation
的{{1}}(必填)无效。我正在使用两个字段answerfile
当我在one editor and one filepicker fields.
中提交空值(没有选择文件)的按钮时,表单会被提交。
filepicker
请帮帮我......
Moodle ver:2.9.1
答案 0 :(得分:0)
可能是客户端验证不起作用。尝试服务器端验证。如果可以,那么它可能与客户端的javascript有关。
$mform->addRule('answerfile', null, 'required');
答案 1 :(得分:0)
文件验证规则仅在我们在moodleform custructor中传递第一个参数时才有效。
使用function is_dir_empty($dir) {
foreach (new DirectoryIterator($dir) as $fileInfo) {
if($fileInfo->isDot()) continue;
return false;
}
return true;
}
$mform = new add_form($pageurl);
放置您已实例化add_form对象的位置。
$ pageurl是提交表单数据的页面的URL。
我检查了您的代码,如果使用参数,它适用于客户端和服务器端验证。