В този учебник ще научиш как да реагираш на промени в input елементите на уеб формуляри с JavaScript. Важно е да използваш подходящите обработчици на събития, за да оптимизираш потребителското изживяване и да осигуриш, че получаваш правилните стойности за по-нататъшна обработка. В частност, ще разгледаме събитията onchange и oninput, за да се уверим, че въведените от теб данни се обработват динамично и ефективно.

Най-важните изводи

  • Събитието onchange се задейства, когато потребителят премести фокуса от поле за въвеждане и бъдат направени промени.
  • Събитието oninput се задейства при всяко въвеждане и позволява директно взаимодействие с потребителя.
  • Стоиностите, върнати от елементите за въвеждане, по подразбиране са низове и може да е необходимо да бъдат преобразувани в правилния тип данни (например, чрез parseFloat или valueAsNumber).

По стъпково ръководство

За да демонстрираме посочените концепции, ще преминем през няколко стъпки за да регистрираме събития в поле за въвеждане и за да работим с данните.

Стъпка 1: Създаване на елемент за въвеждане

Първо трябва да създадете прост елемент за въвеждане на число в HTML файла си. Структурирайте HTML си с поле за въвеждане на възраст.

Реагирайте на промени във входни елементи с JavaScript

Стъпка 2: Добавяне и тестване на събитието onchange

Сега добавяме обработчик на събитие за събитието onchange. Това го правим, като създадем функция, която се извиква, когато потребителят премахва фокуса от елемента за въвеждане.

Реагирайте на промени във входни елементи с JavaScript

Важно е да споменем, че при промяна на стойността можем директно да достъпим въведените данни от елемента за въвеждане.

Реагирайте на промени във входните елементи с JavaScript

Стъпка 3: Обработка на входните данни

В рамките на тази функция можеш да получиш стойността на елемента за въвеждане чрез обекта на събитието. Достъпът до стойността трябва да бъде извършен чрез event.target.value, за да получиш текущата стойност директно.

Реагирай на промени в input елементите с JavaScript

Може да има ситуации, в които искаме да публикуваме или обработим въведената стойност, но трябва първо да я проверим? Различните типове на стойностите са важни, особено ако искате да извършвате числови изчисления.

Реагирайте на промени във входни елементи с JavaScript

Стъпка 4: Проверка на типа на стойността

Както можеш да забележиш, елементът за въвеждане винаги връща стойността си като низ. За да се уверим, че получаваме число, можем да използваме преобразуване на типа данни. Можеш да използваш parseFloat, за да се увериш, че работим с правилния тип данни.

Стъпка 5: Имплементация на събитието oninput

Ако се нуждаеш от динамична реакция, когато потребител въвежда нещо, следва да използваш метода oninput като допълнение към onchange. Това означава, че всяки път, когато потребителят натисне клавиш или промени стойността, функцията ще бъде извикана директно.

Реагирайте на промени във входящи елементи с JavaScript

Стъпка 6: Сравнение на двете събития

Отбележи как събитията oninput и onchange се различават. oninput се активира при всяко въвеждане, докато onchange се активира само когато потребителят напусне полето за въвеждане. Това е особено полезно, когато се изисква реално времево обратна връзка.

Реагирайте на промените във входните елементи с JavaScript

Стъпка 7: Работа с различни типове вход

Методите, които използваш за поле за въвеждане от тип число, се отнасят и за други типове като текст или цвят. Ако използваш поле за избор на цвят, скоро ще осъзнаеш, че използването на събитията трябва да бъде адаптирано към типа.

Реагирайте на промените в input елементите с JavaScript

Резюме

В този урок научихте как да използвате JavaScript, за да реагирате на потребителски взаимодействия в полета за въвеждане. Научихте как работят onchange и oninput и колко важно е да обработвате входните стойности подходящо в зависимост от типа.

Често задавани въпроси

Кои събития мога използват за елементите input?Можете да използвате onchange, oninput, както и други събития като onclick или специфични клавишни събития.

Как да получа текущата стойност на поле за въвеждане?Използвайте event.target.value, за да получите текущата стойност.

Кога се събитието onchange се изпълнява?Събитието onchange се изпълнява, когато потребителят премахва фокуса от полето за въвеждане и направи промени.

Как мога да се уверя, че определена стойност се интерпретира като число?Можете да използвате parseFloat() или valueAsNumber, за да преобразувате низа в число.

Има ли разлики между oninput и onchange?Да, oninput се извиква при всяка промяна на стойността, докато onchange се изпълнява само когато фокусът напусне полето за въвеждане.