mirror of
https://github.com/moodle/moodle.git
synced 2025-08-06 09:26:35 +02:00
MDL-28987 Forms Library: Added tinyMCE onblur event callback for required tinymce fields
This commit is contained in:
parent
cbe20ec362
commit
ab978b38c4
4 changed files with 57 additions and 18 deletions
|
@ -172,7 +172,10 @@ class tinymce_texteditor extends texteditor {
|
|||
$params['file_browser_callback'] = "M.editor_tinymce.filepicker";
|
||||
}
|
||||
}
|
||||
|
||||
//Add onblur event for client side text validation
|
||||
if (!empty($options['required'])) {
|
||||
$params['init_instance_callback'] = 'M.editor_tinymce.onblur_event';
|
||||
}
|
||||
return $params;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,3 +72,28 @@ M.editor_tinymce.filepicker = function(target_id, url, type, win) {
|
|||
});
|
||||
};
|
||||
|
||||
M.editor_tinymce.onblur_event = function(ed) {
|
||||
//Attach event only after tinymce is intialized.
|
||||
if (ed.onInit != undefined) {
|
||||
var s = ed.settings;
|
||||
//Save before event is attached, so that if this event is not generated then textarea should
|
||||
//have loaded contents and submitting form should not throw error.
|
||||
ed.save();
|
||||
|
||||
//Attach blur event for tinymce to call onchange validation function of textarea.
|
||||
var doc = s.content_editable ? ed.getBody() : (tinymce.isGecko ? ed.getDoc() : ed.getWin());
|
||||
tinymce.dom.Event.add(doc, 'blur', function() {
|
||||
//save contents to textarea before calling validation script.
|
||||
ed.save();
|
||||
var element = document.getElementById(ed.id);
|
||||
element.onchange(element);
|
||||
});
|
||||
|
||||
//Add an extra event to make sure after window is blurred because of user clicking
|
||||
//out of tinymce or any popup occured, then error should be cleaned on focusing back.
|
||||
tinymce.dom.Event.add(doc, 'focus', function() {
|
||||
var element = document.getElementById(ed.id);
|
||||
qf_errorHandler(element, '');
|
||||
});
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue