Permalink
Browse files

Merge branch 'MDL-32064_21' of git://github.com/timhunt/moodle into M…

…OODLE_21_STABLE
  • Loading branch information...
2 parents 2849965 + 73848c6 commit 2aab431486f949c098ecbf1f0fd48cde8e04ea61 Sam Hemelryk committed Mar 19, 2012
Showing with 25 additions and 4 deletions.
  1. +25 −4 mod/quiz/module.js
View
@@ -143,6 +143,29 @@ M.mod_quiz.nav.init = function(Y) {
var form = Y.one('#responseform');
if (form) {
+ function find_enabled_submit() {
+ // This is rather inelegant, but the CSS3 selector
+ // return form.one('input[type=submit]:enabled');
+ // does not work in IE7, 8 or 9 for me.
+ var enabledsubmit = null;
+ form.all('input[type=submit]').each(function(submit) {
+ if (!enabledsubmit && !submit.get('disabled')) {
+ enabledsubmit = submit;
+ }
+ });
+ return enabledsubmit;
+ }
+
+ function nav_to_page(pageno) {
+ Y.one('#followingpage').set('value', pageno);
+
+ // Automatically submit the form. We do it this strange way because just
+ // calling form.submit() does not run the form's submit event handlers.
+ var submit = find_enabled_submit();
+ submit.set('name', '');
+ submit.getDOMNode().click();
+ };
+
Y.delegate('click', function(e) {
if (this.hasClass('thispage')) {
return;
@@ -157,22 +180,20 @@ M.mod_quiz.nav.init = function(Y) {
} else {
pageno = 0;
}
- Y.one('#followingpage').set('value', pageno);
var questionidmatch = this.get('href').match(/#q(\d+)/);
if (questionidmatch) {
form.set('action', form.get('action') + '#q' + questionidmatch[1]);
}
- form.submit();
+ nav_to_page(pageno);
}, document.body, '.qnbutton');
}
if (Y.one('a.endtestlink')) {
Y.on('click', function(e) {
e.preventDefault();
- Y.one('#followingpage').set('value', -1);
- Y.one('#responseform').submit();
+ nav_to_page(-1);
}, 'a.endtestlink');
}

0 comments on commit 2aab431

Please sign in to comment.