获得用户响应

时间:2018-05-05 14:04:10

标签: moodle

请帮助我。

我正在创建一个新的问题类型(修改gapselect问题)。我的问题渲染器中有一些输入表单(见下面的截图)。在get_expected_data()中我有:

$vars = array();
foreach ($this->places as $place => $notused) {
$vars[$this->field($place)] = PARAM_TEXT;
}
return $vars;

但它只需要数字。

有想法吗,出了什么问题?

numbers entered

letters entered

输入的HTML代码:

$inputattributes = array(
'type' => 'text',
'name' => $inputname,
'value' => $currentanswer,
'id'     => $this->box_id($qa, 'p' . $place),
'size' => 30,
'class' => 'form-control',
);
$input = html_writer::empty_tag('input', $inputattributes);

1 个答案:

答案 0 :(得分:1)

检查所有输入的类型是否设为text而不是number

e.g。

// wrong
$mform->addElement('number', 'email', get_string('email'));
// correct
$mform->addElement('text', 'email', get_string('email'));

或者检查没有与该元素关联的规则来强制执行数字输入。

$mform->addRule('email', get_string('email'), 'numeric', ....