Merged autofocus fixes for formslib to dev from stable

This commit is contained in:
moodler
2007-03-16 01:46:17 +00:00
parent ee266f33e0
commit 8dec2253cf
2 changed files with 13 additions and 6 deletions
+8 -4
View File
@@ -129,11 +129,13 @@ class moodleform {
/**
* To autofocus on first form element or first element with error.
*
* @param string $name if this is set then the focus is forced to a field with this name
*
* @return string javascript to select form element with first error or
* first element if no errors. Use this as a parameter
* when calling print_header
*/
function focus(){
function focus($name=NULL){
$form =& $this->_form;
$elkeys=array_keys($form->_elementIndex);
if (isset($form->_errors) && 0 != count($form->_errors)){
@@ -142,10 +144,12 @@ class moodleform {
}
$names=null;
while (!$names){
$el = array_shift($elkeys);
$names = $form->_getElNamesRecursive($el);
$el = array_shift($elkeys);
$names = $form->_getElNamesRecursive($el);
}
if (empty($name)) {
$name=array_shift($names);
}
$name=array_shift($names);
$focus='forms[\''.$this->_form->getAttribute('id').'\'].elements[\''.$name.'\']';
return $focus;
}
+5 -2
View File
@@ -654,16 +654,19 @@
// Show the discussion name in the breadcrumbs.
$strdiscussionname = format_string($discussion->name).':';
}
$forcefocus = empty($reply) ? NULL : 'message';
if ($course->id != SITEID) {
print_header("$course->shortname: $strdiscussionname ".
format_string($toppost->subject), $course->fullname,
"<a href=\"../../course/view.php?id=$course->id\">$course->shortname</a> ->
$navmiddle $navtail", $mform_post->focus(), "", true, "", navmenu($course, $cm));
$navmiddle $navtail", $mform_post->focus($forcefocus), "", true, "", navmenu($course, $cm));
} else {
print_header("$course->shortname: $strdiscussionname ".
format_string($toppost->subject), $course->fullname,
"$navmiddle $navtail", $mform_post->focus(), "", true, "", navmenu($course, $cm));
"$navmiddle $navtail", $mform_post->focus($forcefocus), "", true, "", navmenu($course, $cm));
}