|
:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
class= " prettyprint " id= " codeSnippet731347 " >var FORM_MANAGER_CONDITION_SEPARATOR = «И»;
var FORM_MANAGER_POSSIBILITY_SEPARATOR = «ИЛИ»;
var FORM_MANAGER_NAME_VALUE_SEPARATOR = «БЫЛ»;
var FORM_MANAGER_DEPENDS = «БЫТЬ В ЗАВИСИМОСТИ ОТ»;
var FORM_MANAGER_CONFLICTS = «ПРОТИВОРЕЧИТ С»;
var FORM_MANAGER_EMPTY = «ОПОРОЖНЯЕТ»;
функция addEvent (el, ev, f) {
если (el.addEventListener), то
el.addEventListener (ev, f, ложные);
еще если (el.attachEvent) {, то
var t = функция () {
f.apply (el);
};
addEvent.events.push ({«элемент»: el, «случай»: ev, «укротитель»: f});
el.attachEvent ("ОН"о + ev, t);
} еще
el ["ОН"о + ev] = f;
}
addEvents функции (els, evs, f) {
для (var iий = 0; iий < els.length; ++i)
для (var j = 0; j < evs.length; ++j)
addEvent (els [I], evs [j], f);
}
addEvent.events = [];
если (typeof window.event! == «неопределило»)
addEvent (окно, «разгржает», функция () {
для (var iий = 0, e = addEvent.events; iий < e.length; ++i)
e [I] .element.detachEvent ("ОН"о + e [I] .event, e [I] .handler);
}
);
getRadioValue функции (el) {
если (! возвращение el.length) нулевое;
для (var iий = 0; iий < el.length; ++i)
если (el [I] .checked) возвращенный el [I] .value;
возвращенный null;
}
getSelectValue функции (el) {
если (! el.tagName || el.tagName.toLowerCase ()! == «выбирает»)
возвращенный null;
возвращенное el.options [el.selectedIndex] .value;
}
isElementValue функции (el, v) {
если (=== FORM_MANAGER_EMPTY v) v = '';
возвратите (
== v getRadioValue (el) ||
== v getSelectValue (el) ||
(
&& el.tagName
el.tagName.toLowerCase ()! == «выбирает» &&
== v el.value
)
);
}
setupDependencies функции () {
showEl = функция var () {
this.style.display = "";
если (== «ярлык» this.parentNode.tagName.toLowerCase ()), то
this.parentNode.style.display = "";
};
hideEl = функция var () {
this.style.display = «никакие»;
если (typeof this.checked! == «неопределило») this.checked = ложно;
друг this.value = "";
если (== «ярлык» this.parentNode.tagName.toLowerCase ()), то
this.parentNode.style.display = «никакие»;
this.hidden = true;
};
calcDeps = функция var () {
для (var iий = 0, e = this.elements; iий < e.length; ++i) {
e [I] .hidden = ложно;
для (var j = 0, f = e [I] .className.split (FORM_MANAGER_CONDITION_SEPARATOR); j < f.length; ++j)
если (=== 0 f [j] .indexOf (FORM_MANAGER_DEPENDS)) {, то
для (var k = 0, g = f [j] .substr (FORM_MANAGER_DEPENDS.length) .split (FORM_MANAGER_POSSIBILITY_SEPARATOR); k < g.length; ++k)
если (=== -1 g [k] .indexOf (FORM_MANAGER_NAME_VALUE_SEPARATOR)) {, то
если (e [g [k]] пролом && e [g [k]] .checked);
еще если (k + 1 == g.length), то
e [I] .hide ();
} еще {
var n = g [k] .split (FORM_MANAGER_NAME_VALUE_SEPARATOR),
v = n [1];
n = n [0];
если (e, то [n])
если (isElementValue, то (e [n], v)) пролом;
еще если (k + 1 == g.length) e [I] .hide, то ();
}
} еще если (=== 0 f [j] .indexOf (FORM_MANAGER_CONFLICTS)) {, то
если (=== -1 f [j] .indexOf (FORM_MANAGER_NAME_VALUE_SEPARATOR)) {, то
если (e, то [f [j] .substr (FORM_MANAGER_CONFLICTS.length)] && e [f [j] .substr (FORM_MANAGER_CONFLICTS.length)].checked) {
e [I] .hide ();
пролом;
}
} еще {
var n = f [j] .substr (FORM_MANAGER_CONFLICTS.length) .split (FORM_MANAGER_NAME_VALUE_SEPARATOR),
v = n [1];
n = n [0];
если (e [n]) {, то
если (isElementValue, то (e [n], v)) {
e [I] .hide ();
пролом;
}
}
}
}
если (! e [I] .hidden) e [I] .show ();
}
};
changeHandler = функция var () {
this.form.calculateDependencies ();
возвращенно true;
};
для (var iий = 0; iий < arguments.length; ++i) {
для (var j = 0, e = window.document.forms [аргументы [I]] .elements; j < e.length; ++j) {
addEvents ([e [j]], [«изменение», «keyup», «фокус», «щелчок», «keydown»], changeHandler);
e [j] .hide = hideEl;
e [j] .show = showEl;
}
(e = window.document.forms [аргументы [I]]) .calculateDependencies = calcDeps;
e.calculateDependencies ();
}
}
class= " lineNumbers " >1 >
< " prettyprint " " class= id= " codeSnippet731346 >
Содержани-Тип текст " http-equiv=
Untitled Document
src= " FormManager.js "
type= " текст/яваскрипт "
Пожалуйста выберите ваши кампус и академичную дисциплину.
name= " weboptions " "" action=
class= " ясное " >