У меня был случай, когда у меня была такая форма:
И я попытался получить его идентификатор с помощью javascript:
const form = document.getElementById("#hello") console.log(form.id)
Но в результате вернулось:
Вместо этого
HTMLElement. Поэтому, чтобы смягчить эту проблему, я использовал вместо этого функцию getAttribute:
const form = document.getElementById("#hello") console.log(form.getAttribute('id'))
На первый взгляд этот пример кажется неуместным. Но в моем случае я разрабатывал служебную библиотеку, в качестве аргумента которой был получен HTMLElement:
function formEnable(form,enable,resetFeedback=true){ // checks whether for is an actual form are ommited for simplicity const formId = form.id const submitBtn = form.querySelector(`button[type="submit"]`)?? document.querySelector(`button[form="${formId}"][type="submit"]`) ?? document.querySelector(`button[form="${formId}"]`); if(!submitBtn){ throw Error("Unable to enable or disable form") } // Form Enabling Logic }
В моем случае я использовал эту функцию для размещения логики для включения формы, и потому что скрытый ввод с идентификатором имени был в качестве поля ввода в моей форме. Не удалось получить кнопку.
Поэтому вместо этого я сделал:
function formEnable(form,enable,resetFeedback=true){ // checks whether for is an actual form are ommited for simplicity const formId = form.getAttribute('id'); const submitBtn = form.querySelector(`button[type="submit"]`)?? document.querySelector(`button[form="${formId}"][type="submit"]`) ?? document.querySelector(`button[form="${formId}"]`); if(!submitBtn){ throw Error("Unable to enable or disable form") } // Form Enabling Logic }
Убедитесь, что я получил атрибут id относительно входных данных и их имен, которые существуют внутри моей формы.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3