Tuve un caso en el que tenía este formulario:
Y traté de recuperar su ID usando javascript:
const form = document.getElementById("#hello") console.log(form.id)
Pero esto resultó en devolver el:
HTMLElement en su lugar. Por lo tanto, para mitigar este problema utilicé la función getAttribute:
const form = document.getElementById("#hello") console.log(form.getAttribute('id'))
A primera vista, el ejemplo parece un poco irrelevante. Pero en mi caso estaba desarrollando una biblioteca de utilidades en la que se recibió un 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 }
En mi caso utilicé esta función para colocar una lógica para habilitar el formulario y porque una entrada oculta con ID de nombre era como campo de entrada en mi formulario. No se pudo recuperar el botón.
Por lo tanto, en lugar de eso hice:
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 }
Asegurarme de haber recibido el atributo id con respecto a la Entrada y sus nombres que existen dentro de mi formulario.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3