Все проще простого. В
JavaScript существуют события
focus и
blur, можно при наступлении этих события на конкретном элементе скрывать и показывать ваш лейбл. Пример кода с использованием данных событий в атрибутах:
<input onfocus="document.querySelector('label[for=modal_name]').style.display = 'none';" onblur="document.querySelector('label[for=modal_name]').style.display = 'block';" type="text" name="name-form" id="modal_name">
Код внутри
onfocus выполняется при получении фокуса и делает лейбл невидимым, а код внутри
onblur наоборот выполняется уже при потере фокуса и соответственно возвращает видимость.
Если разобрать более подробно, то
document.querySelector('label[for=modal_name]') ищет на странице элемент с тегом
label имеющий атрибут
for равный
modal_name, а далее мы просто присваиваем найденному элементу тот или иной стиль:
display: none или
display: block в нашем случае.
P. S. Добавлю напоследок, что код на jQuery будет короче, примерно так:
<input onfocus="$('label[for=modal_name]').hide();" onblur="$('label[for=modal_name]').show();" type="text" name="name-form" id="modal_name">