Code:
<form action="" onsubmit="alert(getSelectedElement(this).name);" name="f1">
<input type="text" name="text1">
<input type="text" name="text2">
<input type="text" name="text3">
</form>
<script type="text/javascript">
function addEvent(el, ev, f) {
if(el.addEventListener)
el.addEventListener(ev, f, false);
else if(el.attachEvent) {
var t = function() {
f.apply(el);
};
addEvent.events.push({'element': el, 'event': ev, 'handler': f});
el.attachEvent("on" + ev, t);
} else
if(el['on' + ev]) {
var a = el['on' + ev];
el['on' + ev] = function() {
a.apply(this);
f.apply(this);
};
} else el['on' + ev] = f;
}
addEvent.events = [];
if(typeof window.event !== "undefined")
addEvent(window, "unload", function() {
for(var i = 0, e = addEvent.events; i < e.length; ++i) {
e[i].element.detachEvent("on" + e[i].event, e[i].handler);
e[i].element['on' + e[i].event] = null;
}
}
);
var selEls = [];
addEvent(window, "load", function() {
for(var i = 0, f = document.forms; i < f.length; ++i) {
for(var j = 0, e = f[i].elements; j < e.length; ++j) {
addEvent(e[j], "focus", function() {
selEls[getObjInCol(this, document.forms)] = this;
});
addEvent(e[j], "blur", function() {
selEls[getObjInCol(this, document.forms)] = null;
});
}
selEls[i] = null;
}
});
function getSelectedElement(frm) {
var t;
return ((t = getObjInCol(frm, selEls)) === -1 ? null : selEls[t]);
}
function getObjInCol(obj, col) {
for(var i = 0, f = col; i < f.length; ++i)
if(f[i] == obj)
return i;
return -1;
}
</script>
That addEvent() code is getting longer and longer...
Bookmarks