Merged autofocus fixes for formslib to dev from stable
This commit is contained in:
+8
-4
@@ -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
@@ -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));
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user