Функция getElementsByName
принимает только имя элемента, а не атрибут, классы или что-либо еще ...
Затем она возвращает HTMLCollection (итеративный), который похож на массив.
«Старая школа»:
let field = Array.from(document.getElementsByName("booking")).find(el => el.hasAttribute('email'));
Но гораздо проще сделать document.querySelector('booking[email]')
.
На заметку ...
Если вы используете angular, используйте его правильно и добавьте ng-click
, чтобы изменить свойство в области видимости, которое используется в качестве заполнителя
<input placeholder="{{myPlaceHolder}}">
<button ng-click="myPlaceHolder = 'new placeholder'"></button>