PluginProbe ʕ •ᴥ•ʔ
Advanced Editor Tools / 3.3.9.1
Advanced Editor Tools v3.3.9.1
trunk 1.0 1.0.1 2.0 2.2 3.0 3.0.1 3.1 3.2 3.2.4 3.2.7 3.3.9 3.3.9.1 3.3.9.2 3.4.2 3.4.2.1 3.4.5 3.4.5.1 3.4.9 3.5.8 3.5.9 3.5.9.1 4.0 4.0.1 4.0.2 4.1 4.1.1 4.1.7 4.1.9 4.2.3 4.2.3.1 4.2.5 4.2.8 4.3.10 4.3.10.1 4.3.8 4.4.1 4.4.3 4.5.6 4.6.3 4.6.7 4.7.11 4.8.0 4.8.1 4.8.2 5.0.0 5.0.1 5.1.0 5.2 5.2.1 5.3 5.4.0 5.5.0 5.5.1 5.6.0 5.9.0 5.9.1 5.9.2
tinymce-advanced / utils / editable_selects.js
tinymce-advanced / utils Last commit date
editable_selects.js 15 years ago form_utils.js 15 years ago mctabs.js 15 years ago validate.js 15 years ago
editable_selects.js
71 lines
1 /**
2 * editable_selects.js
3 *
4 * Copyright 2009, Moxiecode Systems AB
5 * Released under LGPL License.
6 *
7 * License: http://tinymce.moxiecode.com/license
8 * Contributing: http://tinymce.moxiecode.com/contributing
9 */
10
11 var TinyMCE_EditableSelects = {
12 editSelectElm : null,
13
14 init : function() {
15 var nl = document.getElementsByTagName("select"), i, d = document, o;
16
17 for (i=0; i<nl.length; i++) {
18 if (nl[i].className.indexOf('mceEditableSelect') != -1) {
19 o = new Option('(value)', '__mce_add_custom__');
20
21 o.className = 'mceAddSelectValue';
22
23 nl[i].options[nl[i].options.length] = o;
24 nl[i].onchange = TinyMCE_EditableSelects.onChangeEditableSelect;
25 }
26 }
27 },
28
29 onChangeEditableSelect : function(e) {
30 var d = document, ne, se = window.event ? window.event.srcElement : e.target;
31
32 if (se.options[se.selectedIndex].value == '__mce_add_custom__') {
33 ne = d.createElement("input");
34 ne.id = se.id + "_custom";
35 ne.name = se.name + "_custom";
36 ne.type = "text";
37
38 ne.style.width = se.offsetWidth + 'px';
39 se.parentNode.insertBefore(ne, se);
40 se.style.display = 'none';
41 ne.focus();
42 ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput;
43 ne.onkeydown = TinyMCE_EditableSelects.onKeyDown;
44 TinyMCE_EditableSelects.editSelectElm = se;
45 }
46 },
47
48 onBlurEditableSelectInput : function() {
49 var se = TinyMCE_EditableSelects.editSelectElm;
50
51 if (se) {
52 if (se.previousSibling.value != '') {
53 addSelectValue(document.forms[0], se.id, se.previousSibling.value, se.previousSibling.value);
54 selectByValue(document.forms[0], se.id, se.previousSibling.value);
55 } else
56 selectByValue(document.forms[0], se.id, '');
57
58 se.style.display = 'inline';
59 se.parentNode.removeChild(se.previousSibling);
60 TinyMCE_EditableSelects.editSelectElm = null;
61 }
62 },
63
64 onKeyDown : function(e) {
65 e = e || window.event;
66
67 if (e.keyCode == 13)
68 TinyMCE_EditableSelects.onBlurEditableSelectInput();
69 }
70 };
71