Краткий ответ:
Используйте парены: onfocus="this.oninput();"
Если oninput
ссылается на this
или на объект события, вам нужно добавить немного больше:
onfocus="this.oninput.call(this, event);"
Объяснение:
Если вы подключали обработчики событий в коде, ваш синтаксис правильный.Потому что вы устанавливаете ссылку на функцию.Т.е.,
myInput.onfocus = myInput.oninput;
Но, если присоединить к разметке, код между кавычками фактически сам является функцией.Например,
<span id="foo" onclick="alert('hello world');" />
Эквивалентно:
document.getElementById("foo").onclick = function () {
alert('hello world');
};
Таким образом, ваш написанный код эквивалентен:
document.getElementById("x").onfocus = function () {
this.oninput; // returns a function reference. Does not call the function.
};