Tive um caso em que tinha este formulário:
E tentei recuperar seu ID usando javascript:
const form = document.getElementById("#hello") console.log(form.id)
Mas isso resultou no retorno de:
HTMLElement em vez disso. Portanto, para mitigar esse problema, usei a função getAttribute:
const form = document.getElementById("#hello") console.log(form.getAttribute('id'))
À primeira vista, o exemplo parece um pouco irrelevante. Mas no meu caso eu estava desenvolvendo uma biblioteca utilitária que recebia um HTMLElement como argumento:
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 }
No meu caso, usei esta função para colocar uma lógica para habilitação do formulário e porque uma entrada oculta com nome id estava como campo de entrada no meu formulário. O botão não foi recuperado.
Portanto, em vez disso eu fiz:
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 }
Garantindo que recebi o atributo id referente ao Input e seus nomes que existem dentro do meu formulário.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3