Да... понятно...
Мне кажется, что вот это уже ближе )), но я не знаю, как присвоить переменным text и cursor значения из поля (там, где у меня ???):
var elements = document.getElementsByClassName('en'); {
for (var i = 0; i < elements.length; i++) {
elements[i] = function correctLayoutInTag(text,cursor) {
var text = ???;
var cursor = getCaret(???);
var translit = function(text) {return correctLayout(text)}
text.value = text.value.replace(text.value, translit);
setCaretToPos(text, cursor);
};
};
};