#javascript #html #typescript
#javascript #HTML #typescript
Вопрос:
<form id="myForm">
<label for="fname">First name:</label><br>
<input type="text" id="fname" name="fname"><br>
<label for="mname">Middle name:</label><br>
<input type="text" id="mname" name="mname"><br><br>
<label for="lname">Last name:</label><br>
<input type="text" id="lname" name="lname"><br><br>
</form>
Я хочу запустить фрагмент кода только один раз, когда происходит событие фокусировки в любом из этих полей формы.
Как я могу это сделать?
Комментарии:
1. вы, вероятно, ищете это …. w3schools.com/jsref/event_onfocus.asp
Ответ №1:
Вы можете создать функцию JavaScript, содержащую ваш код, затем выполнить цикл по каждому из элементов формы и в качестве события фокусировки
Нравится
function hi (){
//Do stuff, then if you don't want it to go again
Array.from(myForm.children)
. forEach (c =>
c.removeEventListener("focus", hi)
)
}
Array.from(myForm.children)
. forEach (c =>
c.addEventListener("focus", hi)
)
Комментарии:
1. Функция должна выполняться только один раз для события фокусировки. Например, если первое поле сфокусировано, то функция должна быть выполнена, вот и все. После этого для любого события фокусировки функция не должна вызываться
2. Таким образом, он должен вызываться один раз для каждого элемента или один раз всего, если выбран какой-либо элемент?
3. всего один раз, если выбран какой-либо элемент