我有一个案例,其中有这种形式:
我尝试使用 javascript 检索其 Id:
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 }
在我的例子中,我使用此函数来放置表单启用的逻辑,因为名称为 id 的隐藏输入作为我的表单按钮中的输入字段无法检索。
因此,我做了:
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