понедельник, 19 августа 2019 г.

A programmer: JavaScript #15

Написал скрипт с для проверки длины имени и фамилии на стороне клиента. Файл javascript с использованием eventListener. Но получалось, что для двух разных полей (имени и фамилии) нужно писать два идентичных скрипта, что неправильно. Я решил заменить два скрипта на один, заменив, соответственно, eventListener в скрипте на onchange в тэге. Но получалась странная ситуация: судя по туториалам, надо или внешний скрипт подключать ко всей странице, или писать onchang, но тогда скрипт надо писать в html'e. Или-или.

Посоветовали (дословно): "во внешнем файле функцию имей, файл подключи, а функцию эту вызывай". И вот получилось!



Разумеется, файл был подключен, а в полях было указано:

onchange="listen('first_name')"
onchange="listen('last_name')"


День прожит не зря :)

2 комментария:

Unknown комментирует...

onchange="listen('first_name')"

function listen (name) {
var element = document.getElementById(name);
...
}

Это ужасно :)
Вы знакомы с this?

onchange="listen(this)"

function listen (element) {
...
}

Oleksiy Musiyezdov комментирует...

Теоретически знаком, но в применении чувствую себя пока неуверенно. Но спасибо!