$string['addmoreanswerblanks'] = 'Blanks for {no} More Answers';
$string['addmoreunitblanks'] = 'Blanks for {no} More Units';
$string['answerno'] = 'Answer $a';
+$string['answermustbenumberorstar'] = 'The answer must be a number, or \'*\'.';
$string['errorrepeatedunit'] = 'You cannot have two units with the same name.';
$string['errornomultiplier'] = 'You must specify a multiplier for this unit.';
$string['notenoughanswers'] = 'You must enter at least one answer.';
$repeated[] =& $mform->createElement('header', 'answerhdr', get_string('answerno', 'qtype_numerical', '{no}'));
$repeated[] =& $mform->createElement('text', 'answer', get_string('answer', 'quiz'));
- $mform->setType('answer', PARAM_NUMBER);
+ $mform->setType('answer', PARAM_RAW);
$repeated[] =& $mform->createElement('text', 'tolerance', get_string('acceptederror', 'quiz'));
$mform->setType('tolerance', PARAM_NUMBER);
$answers = $data['answer'];
foreach ($answers as $key => $answer) {
$trimmedanswer = trim($answer);
- if ($trimmedanswer!=''){
+ if ($trimmedanswer != '') {
$answercount++;
+ if (!(is_numeric($trimmedanswer) || $trimmedanswer == '*')) {
+ $errors["answer[$key]"] = get_string('answermustbenumberorstar', 'qtype_numerical');
+ }
if ($data['fraction'][$key] == 1) {
$maxgrade = true;
}